我期待的JavaScript文件加载到使用jQuery的iframe,但似乎我做的方式,检查他们在那里的DOM,但他们表现得好像他们是在父。下面是一些代码:如何加载到iframe中使用jQuery
somejsfile.js:
function createDraggable(draggableId){
if (jQuery.isFunction(jQuery.fn.draggable)) {
jQuery('#'+draggableId,fPage).draggable({
containment: '#contentArea',
iframeFix: true,
start: function() {
dragStart();
},
drag: function() {
dragHappening(draggableId);
},
stop: function() {
dragEnd(draggableId);
}
});
} else {
setTimeout(function(){createDraggable(draggableId)},100);
}
}
var fPage = $("#contentFrame").contents();
createDraggable(someElementId);
parent.js:
function loadJS(filepath,w) {
if (!$("script[src*='"+filepath+"']",w).length) {
$("head",w).append('<script type="text/javascript" src="'+filepath+'"></script>');
}
}
var fPage = $("#contentFrame").contents();
loadJS('jquery.min.js',fPage);
loadJS('jquery.ui.min.js',fPage);
loadJS('jquery.ui.draggable.min.js',fPage);
loadJS('somejsfile.js',fPage);
现在somejsfile.js,jQuery('#'+draggableId,fPage).draggable({
作品,但jQuery('#'+draggableId).draggable({
没有,这导致我相信它不是真正加载在iframe中。当我查看萤火虫时,我在iframe的头部看到这些脚本,但是我在主窗口jQuery中看到了可拖动的函数,我没有在那里加载它。
的原因,我不希望它在主窗口的是,作为选择,当它跳跃远离对象,并点击时它会保持选定拖动,直到你再次点击它不能正常工作。
是你加载来自同一服务器作为父来的内容? http://stackoverflow.com/questions/364952/jquery-javascript-accessing-contents-of-an-iframe –
是的,他们是从同一个服务器来。我没有被拒绝的错误或任何东西。 – fanfavorite