2011-05-11 118 views
1

也許標題是有點誤導,問題可能是太多,但我很好奇,怎麼會用jQuery一個工作從內部(相同的主機/域)iframe沒有再鏈接到iframe加載的HTML中的jQuery源代碼。jQuery的:iframe中工作,而無需重新連接

嗯,我可以通過parent.jQuery();來訪問它,但是每當我試圖用它來操作元素時,它都會在parent幀中工作,而不是當前活動的幀。

I幀與ColorBox v.1.3.16生成。

這是我到目前爲止已經試過,沒有運氣可言。(這來自於iframe中):

jQuery = parent.jQuery; 
jQuery(document).ready(function(){ 
    jQuery('#time-bar .slider', document).css({ 'background-color' : 'blue', 'left' : '-99%' }); 
}); 

我用document這裏家長選擇,但它不沒有工作,我不知道應該在那裏使用什麼。

在此先感謝!

編輯:

派生自T.J.克羅德:

parent.jQuery(function($) { 
    var element = $("#time-bar", document); 
    console.log(element); 
}); 

console.log()返回一個空的對象,或者實際上,不知道,如果它可以被稱爲一個對象:[]

回答

2

除了其他因素,您的代碼在document傳遞到jQuery()$())作爲上下文文件應該工作。

實施例:

HTML:

<script src="blah/blah/jquery.min.js"></script> 
<iframe id='theframe' src='http://jsbin.com/ulehi4'> 

的iFrame HTML:

<input type='button' id='theButton' value='Click Me'> 

的iFrame的JavaScript:

parent.jQuery(function($) { 
    $("#theButton", document).click(function() { 
    $("<p>Button clicked!</p>").appendTo(document.body); 
    }); 
}); 

Live example

這就是說,不過,如果你使用完全相同的鏈接jQuery的文件(可能是從它在CDN中的一個)的家長和框架兩者有非常小的開銷是真的。如果您在標記的控制不是可以在iframe插入一個script元素。

+0

咦,似乎並沒有工作。任何的機會,這是造成'顏色框的錯誤'? – jolt 2011-05-11 06:09:09

+0

呵呵,我的壞,可能,但仍然與結果混淆。不管怎麼說,多謝拉!公認。 – jolt 2011-05-11 06:23:08

+0

@湯姆:對不起,不太關注 - 弄來的問題整理出來?從你的問題的編輯,它種好像你沒有,但你接受了這個答案,所以... :-)你列出結果('[]')在編輯建議沒有元素用'id'「時間欄「在iframe中... – 2011-05-11 06:56:56

1

如果我理解正確的問題 - 看: jQuery/JavaScript: accessing contents of an iframe

更重要的是從那裏:

 
$().ready(function() { 
    $("#iframeID").ready(function() { //The function below executes once the iframe has finished loading 
     $('some selector', frames['nameOfMyIframe'].document).doStuff(); 
    }); 
}; 

相關問題