我有两个框架,我使用JavaScript将第一个( myframe )的内容复制到第二个( myframe2 )并设置 myframe2 src:
<iframe id="myframe" src="../Page1.aspx" width="100%" height="100px"></iframe>
<iframe id="myframe2" width="100%" height="100px"></iframe>
<button onclick="myFunction();return false;">Try it</button>
<script>
function myFunction() {
var iframe1 = document.getElementById("myframe");
var iframe2 = document.getElementById("myframe2");
iframe2.contentWindow.document.body.parentElement.innerHTML = iframe1.contentWindow.document.body.parentElement.innerHTML;
iframe2.setAttribute("src", iframe1.src);
}
</script>
设置“src”属性后,FrameSecond 重新加载,但我不需要它。任何人都可以帮我这个吗?
答案 0 :(得分:0)
使用replaceState(state, title, URL)
:
iframe2.contentWindow.history.replaceState('WhatEverNameYouWant', "", iframe1.src);
答案 1 :(得分:0)
我遇到了同样的问题。我需要“知道”加载到iframe中的文档的位置,以便可以在其他位置显示其位置。我输入的内容通过设置更改了iframe的位置
myIFrame.src = ...
这很好用,除非我意识到我单击后退或前进按钮时IFrame的内容已更改,但是并没有(似乎)更改了引用IFrame元素的src属性的值。当我在iframe文档中添加链接以在它们之间进行导航时,同样存在问题。
我的解决方法是在加载到iframe中的文档的onload-handler中将加载的URL记录到父窗口的字段中。当包含文档需要知道IFrame中加载了什么文件时,它会查询该变量,而不是依赖其IFrame -element的.src-属性,后者似乎并没有自动更新iframe的实际内容。
顺便说一句。我还尝试从iframed文档的onload -handler显式设置iframe元素的.src -attribute的值。可以,但是造成了iframe内容的可见第二次加载。通过使用一个单独的显式位置来存储加载到iframe中的文档的url,它不会被加载两次,并且一切都可以顺利进行。
答案 2 :(得分:0)
确实不是这个问题的具体答案,但也许对某人有用。
我需要将语言传递给Iframe,对我有用的是将参数添加到哈希而不是查询字符串。因为哈希更改不会触发iframe中的页面重新加载: