也许标题有点误导,问题也可能存在,但我很好奇,如何使用jQuery从内部(相同的主机/域)iframe
而不重新链接到jQuery的源代码iframe加载了HTML。
好吧,我可以使用parent.jQuery();
访问它,但每当我尝试使用它操作元素时,它都在parent
帧中工作,而不是当前的活动元素。
iframe是使用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()
返回一个空对象,或者实际上,不知道它是否可以被称为对象:[]
。
答案 0 :(得分: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);
});
});
尽管如此,如果你在父节点和框架中使用与jQuery文件完全相同的链接(可能来自其中的一个CDN),那么开销确实很小。如果您无法控制标记,则可以在iframe中插入script
元素。
答案 1 :(得分: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(); }); };