我有一个带iframe和按钮的html文件,有没有办法在点击按钮后在iframe体内添加一个javascript函数?这是我的代码。感谢
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script>
function callMe() {
var frame = $('iframe'),
contents = frame.contents(),
body = contents.find('body');
var script2 = document.createElement("script");
script2.type = "text/javascript";
script2.text = " function setEmployeeId(){var employeeId = 0;};"
$(body).append(script2);
};
</script>
<title>sample</title>
</head>
<body>
<iframe src="page2.html">
</iframe>
<button onClick="callMe();">click</button>
</body>
</html>
我想要的结果就是这样。
<html>
<head>
<title>sample</title>
</head>
<body>
<iframe>
<html>
<head>
<title></title>
</head>
<body>
<script>
function setemployeeId() {
var employeeId = 0;
};
</script>
</body>
</html>
</iframe>
</body>
</html>
答案 0 :(得分:1)
希望你可以随时为我澄清一些事情,但我想我有一些坏消息。
除非您拥有正在加载的页面,否则iframe
中加载的任何内容都无法真正编辑,在这种情况下,您只需将所需内容烘焙到加载的页面即可。
无论其!
您仍然可以使用contentWindow属性访问iframe中的元素。这就是为您准备的所有内容:How to pick element inside iframe using document.getElementById
一旦获得了要使用的元素,就可以在父窗口中创建一个函数,然后使用window.parent
添加对父窗口函数的调用。这在此概述:Calling a parent window function from an iframe
因此,如果你想在iframe
中创建一个按钮,可以改变你可以使用的iframe
的内容
var elem = document.getElementById('myframe1').contentWindow.document.getElementById('myButton')
然后在父窗口中创建一个函数
function changeIt(){
document.getElementById('thingToChangeInIframe_ItsIDintheIframe').property = 'value';
}
并将其附加到带代码
的按钮elem.setAttribute('onclick', 'changeIt();');
如果您对所需要的内容有任何明确的评论,我们会解决这些问题。对不起,这并没有使用太多的jQuery,但这不是我的强项,但我认为纯粹的javascript是相对自我解释的。
编辑:我应该澄清一下,如果iframe在另一个域上,那么你的选项几乎都被淘汰了。出于安全原因,当您在iframe中加载设置时,不能弄乱其他人页面上的设置。