我正在使用 Javascript 打开一个空白窗口,用最低限度填充它并注入一个脚本标记以包含 JQuery,但窗口属性 readyState 永远不会超过加载,因此 JQuery 永远不会触发。这是jsFiddle 上的演示。我不明白为什么弹出窗口没有更新它的 readyState。
var popup = window.open("", "popup", "height=500,width=700");
var doc = popup.document;
doc.write("<!doctype html><html><head></head><body></body></html>");
var script = doc.createElement("script");
script.type = "text/javascript";
script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js";
script.onload = function() {
console.log(doc.readyState);
popup.$(document).ready(function() {
console.log(doc.readyState);
});
}
doc.getElementsByTagName("head")[0].appendChild(script);
这是没有 JQuery 的类似代码——readyState 窗口属性的相同问题永远不会超出“加载”。
var popup = window.open("", "popup", "height=500,width=700");
var doc = popup.document;
doc.write("<!doctype html><html><head></head><body></body></html>");
console.log(doc.readyState);