我在IFRAME中进行QUnit测试,并有一个递归JavaScript函数,在启动QUnit之前将所有脚本从父页面加载到IFRAME中.这非常有效.我的问题是我们的一些脚本使用document.ready来开始工作.
像这样的东西:
$(document).ready(function () {
// blah
});
Run Code Online (Sandbox Code Playgroud)
做他们的工作.我更愿意不更改生产代码只是为了考虑测试,我不希望这些生产脚本认为IFRAME文档是"准备好",直到加载每个脚本.
我怎么能延迟"document.ready"本身?
这是我的伪代码给你一个例子来工作:
scripts[0] = "/foo/bar.js";
scripts[1] = "/blah/blah.js";
function RecursiveScriptStart(){
// I want to set document.ready = false right here!
if(scripts.length == 0) {
QUnitStart();
return;
}
RecursiveScriptLoader(0, scripts);
}
function RecursiveScriptLoader(currentScriptID, scripts) {
$.getScript(scripts[currentScriptID], function () {
if (currentScriptID == (scripts.length - 1)) {
QUnitStart();
}
else {
RecursiveScriptLoader(currentScriptID + 1, scripts);
}
});
}
function QUnitStart() {
// I want to set document.ready = true right here!
QUnit.stop();
QUnit.start(); …Run Code Online (Sandbox Code Playgroud) 这是我的第一篇文章堆栈溢出,... :)我喜欢这个网站很多!
我的问题:如何使用JQuery将元素从开始页面复制到弹出窗口?
这是我到目前为止所尝试的:
CopyToThisPageFromTheParent('#accordianResults');
function CopyToThisPageFromTheParent(querySelector) {
var clone = $(querySelector, window.parent.document).clone();
$('#testHtml').append(clone);
alert($('#testHtml').html());
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
var clone = $('#accordianResults', window.parent.document).clone();
alert($('#testHtml').html());
Run Code Online (Sandbox Code Playgroud)
谢谢!
大卫