javascript - 将窗口移至iframe,而无需重新加载

标签 javascript dom iframe

即使单击链接,我也不会创建一个将保留其实例的用户脚本。

为了使脚本实例(例如变量等)持久存在,我需要在iframe中浏览网页,这是运行脚本的窗口的子级。而且,父文档的位置必须与内部文档的位置相同-否则我在使用相同的原产地政策时会遇到问题。

就是说,我不会拒绝这个:

<html>
  <head>
    ...
  </head>
  <body>
     ...page contents...
  </body>
</html>

到这个:
<html>
  <head>
    ...here is my userscript running...

  </head>
  <body>
     <iframe style="width: 100%; height: 100%">
        ...move the whole original window here...

     </iframe>
  </body>
</html>

除非链接具有target="_blank/_parent/_top"链接,否则所有浏览 Activity 都应在内部iframe中进行,而父窗口不应刷新(这将导致脚本丢失所有变量)。

一种方法是简单地使用与我的网站的网址相同的网址创建一个iframe:
var container = document.createElement("iframe");
container.src = window.location;

但是,这种方法将导致页面重新加载以及所有数据丢失(填写表格,滚动)。

因此,将window及其所有内容移至iframe。那可能吗?

最佳答案

也许您可以获取document.head.outerHTML和document.body.outerHTML的内容,将它们组合成一个字符串,对它进行base64编码,然后使用结果构造一个dataURL,然后将其设置为iframe的src。

尽管我可以看到递归将这个想法变成了一种类似于将摄像机指向显示出输出信号的屏幕的效果。

有趣的问题。已收藏。

关于javascript - 将窗口移至iframe,而无需重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20178077/

相关文章:

JavaScript 在不知道级别的情况下为嵌套对象中的元素赋值

javascript - 查询 : trigger a click on an Ajax generated HTML's

html - 如何排列要打印的 html 文档,这样页面就不会被截断?

javascript - 如何解决操作 iframe 的 js 和 iframe 加载之间的竞争条件?

javascript - 保存到驱动器按钮光标

javascript - 如何将参数传递给 View

javascript - 尝试检测浏览器关闭事件

javascript - 如何在此代码中使用断线?

javascript - 标准(HTML5 和 EcmaScript 5.1)对于在浏览器中扩展主机对象有何规定?

php - 更改 php DOMElement 的 innerHTML