嘿我正在使用延迟加载twitter嵌入来加载到我的页面上。目前我已经提供了2000 setTimeout
,之后我使用window.print()
打印页面。但是,如果网络连接速度很慢,那么这将无效,如果净速度好于那么浪费时间。此外,打印后我需要关闭我正在使用的标签window.close()
block main-script
// build:js /js/lazy-x.js
script(src="/js/lazy-x.js")
// endbuild
script.
document.addEventListener("DOMContentLoaded", myFunction);
function myFunction() {
setTimeout(function(){
var file_name = ("{{article['title']}}".replace(/[^0-9a-zA-Z_?: .]/g, ""));
document.title="Scroll - "+file_name;
window.print();}, 2000);
window.onfocus=function(){ window.close();}
}
我正在使用的jade
文件。我需要等待lazy-x.js
加载每个twitter嵌入,然后会出现打印对话框,打印后我需要关闭标签。但是标签没有关闭。
答案 0 :(得分:1)
我不确定你的问题是否合适。你可以在脚本上执行onLoad:
function importScript (sSrc, fOnload) {
var oScript = document.createElement("script");
oScript.type = "text\/javascript";
oScript.onerror = loadError;
if (fOnload) { oScript.onload = fOnload; }
document.currentScript.parentNode.insertBefore(oScript, document.currentScript);
oScript.src = sSrc;
}
示例来自:https://developer.mozilla.org/en/docs/Web/API/HTMLScriptElement
然后你的代码将是:
importScript('/js/lazy-x.js', function() {
var file_name = ("{{article['title']}}".replace(/[^0-9a-zA-Z_?: .]/g, ""));
document.title="Scroll - "+file_name;
window.print()
});
也可以在玉石模板
中进行script(type="text/javascript" src="path_to_js" onload ="callMyFunction()")
另一件事,在window.focus上你要关闭窗口,它可能会阻止打印/停止JS。而不是window.focus检查window.onafterprint
或window.onbeforeprint
事件