强制iframe评估其javascript
Force iframe to evaluate its javascript?
我正在动态创建一个iframe,在某个时候我需要将javascript插入其中。我可以添加带有字符串的标记,但有没有办法强制iframe重新评估其脚本,以便javascript可执行?
需要做什么的简单例子是,用户提供:
<h2 onclick="doSomething();">Click me</h2>
和
function doSomething() { alert('you clicked me'); }
我需要将html推送到iframe的主体中,并且我需要将javascript字符串推送到ifame的脚本中,使其能够工作。
HTML
<!--Container of iframe, iframe will be appended to this div later-->
<div id='myDiv'></div>
JS
var iframe = document.createElement('iframe');
iframe.frameBorder = 1;
iframe.width = "500px";
iframe.height = "250px";
iframe.id = "iframe";
iframe.onload = function()
{
var doc = iframe.contentDocument || iframe.contentWindow.document;
var el = doc.createElement('h2');
el.id="myH2";
el.className="red";
el.style.color="red";
el.style.cursor="pointer";
el.textContent = "Click me";
el.onclick=doSomething;
doc.body.appendChild(el);
}
document.getElementById("myDiv").appendChild(iframe);
function doSomething()
{
alert("OK");
}
这是一把小提琴。
如果将onclick="doSomething();"
更改为onclick="top.doSomething();
,它将起作用。因为复制的h2在当前窗口中查找doSomething
函数,而在iframe中没有doSomething
函数。
如果您使用top
关键字,它将在顶部窗口中显示函数。在iframe中,这意味着查找父对象,在parent中查找self,这在parent和iframe都有效。除非不存在其他家长。
相关文章:
- 下载javascript文件,但不要立即对其进行评估
- 在WebView iOS中评估Javascript
- 删除评估值Javascript时的错误
- Javascript-在一行中评估多个正则表达式
- 在JavaScript中评估复杂的数学表达式
- JavaScript:获取对象的评估属性
- 基本的Javascript/jQuery数学游戏:为什么可以't我第二次运行此函数时进行评估
- 使用评估函数调用 javascript 函数作为文本框 Asp.net 参数
- Webpack:是否可以在编译时评估javascript表达式
- JavaScript 评估 - 如何为对象属性赋值
- JavaScript 评估函数中的电源
- JavaScript 评估,用于在某种隔离环境中的表达式
- JavaScript:评估给定的小时是否在两个小时之间
- 使用javascript评估表单输入单选按钮
- 使用JavaScript评估URL
- JavaScript 评估无法理解字符串中的某些正则表达式
- 是Chrome Javascript评估布尔表达式正确
- Crossrider:通过javascript评估表单响应
- 如何使用JavaScript评估HTML选项
- JavaScript 评估如何