影响父 DOM 的 iFrame JavaScript
iFrame javascript affecting parent DOM
我正在将内联javascript注入到预先存在的框架中。这个javascript根本不影响它所在的框架,而不是包含框架的父DOM。
我有一个JSFiddle演示我的问题:http://jsfiddle.net/vfspadgt/
.HTML
<iframe class="editor" id="preview" name="result" sandbox="allow-forms allow-popups allow-scripts allow-same-origin" frameborder="0">
#document
<!-- Editor content goes here -->
</iframe>
<div class=".dropdown">
<p>hi2</p>
</div>
JavaScript
var preview = $("#preview").contents();
var css = "<style type='text/css'></style>";
var html = "<p>hi1</p>";
preview.find("head").html(css);
var script = document.createElement("script");
script.type = "text/javascript";
script.text = "$('p').remove();";
preview.find("head").append(script);
preview.find("body").html(html);
结果
hi1 在 iFrame 中,hi2 在父 DOM 中。然而,注入iFrame的javascript删除了它不应该访问的hi2,也不应该访问它用来删除它的jQuery。
感谢您的帮助。
我能够自己解决这个问题。问题在于,将脚本附加到 iFrame 中并不足以使其正常工作。要使脚本仅在iFrame DOM中执行,就是直接写入它。
我还用父文档创建了脚本元素,从而给了它们一种关系。
$("#btnRun").click(function(event) {
event.preventDefault();
var previewDoc = window.frames[0].document;
var css = ace.edit("css-editor").getSession().getValue();
var script = ace.edit("js-editor").getSession().getValue();
var html = ace.edit("html-editor").getSession().getValue();
previewDoc.write("<!DOCTYPE html>");
previewDoc.write("<html>");
previewDoc.write("<head>");
previewDoc.write("<style type='text/css'>" + css + "</style>");
previewDoc.write("<script type='text/javascript'>window.onload = function() {" + script + "}</script>");
previewDoc.write("</head>");
previewDoc.write("<body>");
previewDoc.write(html);
previewDoc.write("</body>");
previewDoc.write("</html>");
previewDoc.close();
});
相关文章:
- 我想在Iframe Javascript PHP的帮助下,将单个ajax上传器脚本转换为多个上传器
- 如何在我的页面中调用Iframe JavaScript函数
- 影响父 DOM 的 iFrame JavaScript
- 从不同的窗口(不是子窗口)重新加载iframe-javascript
- 将内容插入 iframe javascript
- 在 iframe /Javascript 中更改 src
- Cookie 设置为 iframe javascript 中的父窗口
- 将文件从输入传输到 iframe JavaScript
- 当用户与IFrame JavaScript交互时进行检测
- 嵌入式 iframe/javascript 小部件中的安全性
- Typo3 iFrame Javascript在Internet Explorer中不起作用
- 如何从iframe(Javascript)中撤销setTimeout变量
- 跨域获取iframe javascript内部的iframe属性
- 跨子域的iFrame Javascript
- GWT IFrame Javascript error
- 计数点击内iframe javascript
- 如何访问iframe javascript变量从父页面访问跨域在iframe
- 如何抓取网站内容(*COMPLEX* iframe, javascript提交)
- 打印pdf隐藏iframe javascript/jquery c# MVC
- 如何在GWT中创建iframe JAVASCRIPT到JAVA