如何在iframe体内添加javascript函数

时间:2013-10-29 03:05:55

标签: javascript jquery html iframe

我有一个带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>

1 个答案:

答案 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中加载设置时,不能弄乱其他人页面上的设置。