我在< iframe>中有一个元素我想使用< iframe>之外的链接激活.
@H_301_2@例:
<iframe src="iframe.html" id="iframe"> *inside the iframe* <div id="activate" class="activate"> </iframe> <a href="#activate" target="iframe">Link</a>@H_301_2@我认为这会起作用,但显然什么也没做,因为我很愚蠢.有任何想法吗?
解决方法
框架页面(test.html):
>该链接包含三个属性,每个属性支持两种滚动到框架中链接的方法: @H_301_2@> target =“target-iframe”和href =“test.html #activate”
这是回退方法,如果发生错误,或者用户已禁用JavaScript.
链接的目标是框架,href属性必须是框架的路径,后缀为锚点,例如test.hrml #activate.此方法将导致框架页面重新加载.此外,如果锚已经在#activate,则此方法将不再起作用.
>这是优雅的解决方案,不会失败.通过全局框架对象(按名称,不按id,target-iframe)访问所需的框架.然后,选择锚点(document.getElementById(‘activate’).
最后,
onclick方法以return false结束,因此默认行为(即在链接之后,导致页面刷新)不会发生. @H_301_2@您当前的代码不起作用,因为缺少名称属性(
....... lots of content .... <div id="activate">Inside frame</div>@H_301_2@包含框架的页面(page-containing-frame.html):
<iframe src="test.html" name="target-iframe"></iframe> <a href="test.html#activate" target="target-iframe" onclick="frames['target-iframe'].document.getElementById('activate') .scrollIntoView();return false">Click</a> ^ That's the link. I've split up code over multiple lines for visibility@H_301_2@说明 @H_301_2@>框架的名称为attrbute,其值为target-iframe(显然,您可以选择任何所需的值).
>该链接包含三个属性,每个属性支持两种滚动到框架中链接的方法: @H_301_2@> target =“target-iframe”和href =“test.html #activate”
这是回退方法,如果发生错误,或者用户已禁用JavaScript.
链接的目标是框架,href属性必须是框架的路径,后缀为锚点,例如test.hrml #activate.此方法将导致框架页面重新加载.此外,如果锚已经在#activate,则此方法将不再起作用.
>这是优雅的解决方案,不会失败.通过全局框架对象(按名称,不按id,target-iframe)访问所需的框架.然后,选择锚点(document.getElementById(‘activate’).
最后,
scrollIntoView
方法用于在视口内移动元素.onclick方法以return false结束,因此默认行为(即在链接之后,导致页面刷新)不会发生. @H_301_2@您当前的代码不起作用,因为缺少名称属性(
target="..."
无法匹配ID,只能匹配名称).此外,#activate在当前页面的上下文中进行解析,因此,链接指向page-containing-frame.html.