2012-02-02 49 views
1

我正在开发一个应用程序,我需要将HTML/JS写入iframe。我选择了一个iframe,因为我认为这将有它自己的命名空间等,所以我不会陷入有关JS变量名称等冲突。从iFrame内引用div

但现在,我尝试引用一个div,由它的ID JS在iframe中。在框架中,我有一个按钮,即调用一个功能:

function colorDiv(){ 
    $("#test").css("background-color","red"); 
}; 

在父项中,这可行 - 没问题。 (当然,这是一个基本的测试场景,我想用highcharts在这个div中编写一个图表,这是行不通的,我试图找出为什么不能)

但是在iframe中,this拉链。该div没有变色。该功能被称为,没有错误 - 但也没有颜色...

(它可能有助于告诉,有一个div在父级称为“测试”,但也没有颜色,如果我计算功能colorDiv中'div#test'的数量,则返回1 ... 我还检查jquery是否已加载,并且它已... ...

关于前两个答案,我不清楚,也许:我试图改变内的div 。不在父窗口中,而是从iframe中的脚本到同一iframe中的div。这就是为什么我觉得这是令人惊讶的,这是不工作....

任何人都可以说明这一点? :)

问候,

保罗

+0

你有没有从你的iframe引用jquery? – jerjer 2012-02-02 08:07:06

回答

0

你试图从iframe中调用父一个DIV?您需要调用父$代替:

parent.$("#test").css("background-color","red"); 
+0

澄清说,我试图改变同一iframe中的div ... – 2012-02-02 07:44:32

0

尝试:

$('#test', top.document).css("background-color","red"); 

或者我不明白你的问题?

+0

澄清说,我试图改变同一个iframe中的div ...因此,top.document将引用iFrame的父级,这是不是我想改变的...... – 2012-02-02 08:10:59

0
function colorDiv(){ 
    window.opener.$("#test").css("background-color","red"); 
}; 
1

如果我得到topicstarter权 - 你应该包括jQuery的libary再次里面的HTML网页,其中使用iframe中,这样你可以使用它的子文档内部操作