使用jQuery加载在div中需要javascript的页面
我创建了一个简单的函数,将浮动可调整大小的内容附加到页面:使用jQuery加载在div中需要javascript的页面,javascript,jquery,Javascript,Jquery,我创建了一个简单的函数,将浮动可调整大小的内容附加到页面: function CreateFloatingWindow(id) { var win = document.createElement('div'); $(win).attr('id', id); $(win).height(100).width(300).css('background-color', 'red'); $(win).resizable().draggab
function CreateFloatingWindow(id) {
var win = document.createElement('div');
$(win).attr('id', id);
$(win).height(100).width(300).css('background-color', 'red');
$(win).resizable().draggable();
$(win).appendTo($('body'));
$(win).load('http://www.fantasy-mmorpg.com/fowiki/#1419~2');
}
CreateFloatingWindow('first');
代码可以正常工作,除非加载的页面中有某种javascript,在这种情况下,结果是一条“请激活javascript”消息
我认为消息是由目标页面本身处理的,但我无法访问其源
有没有办法让目标页面理解我启用了javascript,即使它是通过jQuery加载到div中的
注意:上面的代码要求jQuery和jQuery UI正常运行。我一直在深入研究,并注意以下几点: 首先,草案中的这一条款可能会说明: 脚本执行 使用不带后缀选择器的URL调用
.load()
时
表达式,则在创建脚本之前将内容传递到.html()
远离的。这将在脚本块被丢弃之前执行它们。如果
调用.load()
,并将选择器表达式附加到URL,
但是,在更新DOM之前,脚本会被剥离,
因此不会执行和。两种情况的示例如下所示:
在这里,作为文档的一部分加载到#a中的任何JavaScript都将
成功执行
1$('a').load('article.html')代码>
但是,在以下情况下,脚本
加载到#b中的文档中的块被剥离,而不是
执行:
1$('b').load('article.html#target')代码>
针对不同的浏览器检查消息“请激活JavaScript”,我不确定这是在脚本级别还是浏览器级别。但我很确定“Please Enabled JavaScript”可能是-如果它根本不执行任何JavaScript的话。这说明了一点,但即使删除选择器也会给我同样的信息:/显然,我可以“看到”页面的源代码,但由于它包含缩小的JavaScript,我无法访问普通的源代码,理解逻辑并最终使用我需要的部件。至于这个消息,Firefox给了我同样的消息,我还没有在IE上尝试过,因为我现在不知道运行用户脚本的方法,我会进一步研究这个问题。很抱歉做出这样的假设,但我想,同一个页面可能会有其他小型脚本,这些脚本对JavaScript/其他脚本等进行依赖性检查。我想在不知道要查看的页面的情况下,从这里开始,这有点困难-从我对包含.load()
中的JavaScript文件的测试中,它们确实成功运行。我将编辑我的答案以删除该指控=)我一点也不觉得是指控=D无论如何,如果你想帮我做一些测试,我获取了这个页面:我非常确定检查是用javascript完成的,但我找不到绕过它的方法。。。我担心它可能会使用一些浏览器功能检测来显示消息,而不是简单的noscript tagAha。。如果您在页面加载之前查看DOM,几乎立刻就明白了原因,它在
中说(“请激活Javascript”),这意味着数据是从他们自己的Ajax查询加载的,然后在检索数据后附加到myContent Div。您的代码运行100%良好,因为它正确地获取了页面加载中的DOM,而不是从数据库中检索所有数据。是的。。。你说得对!现在,我只需要理解我是想走简单的路(使用iframe)还是艰难的路(尝试模拟YR db请求)。非常感谢。