我正在尝试弄清楚如何让我的书签按照我想要的方式工作。这是我的问题。我有一个JS书签,可以抓取一个安全的网页并使用这些DOM元素来运行我的代码。
我的问题是,当我单击我的书签时,它会在新选项卡中打开新页面,并立即开始运行我打算为新打开的页面运行的代码。例如,当我单击书签时,我用于存储用户输入的提示窗口会立即在当前页面上运行。我的预期行为是首先在新选项卡中打开新页面,加载页面,然后使用该新页面的 DOM 元素运行提示和其余代码。我正在使用一个安全的网页,所以我将使用谷歌主页作为示例。
下面是一个示例:
javascript: (function() {
function OpenInNewTab(url){
var win = window.open(url);
win.focus();
}
OpenInNewTab("https://www.google.com/?gws_rd=ssl");
var prmt = prompt("Enter a date:");
window.onload = prmt;
})();
最终,我希望代码做 3 件事。
- 从任何页面单击新窗口时,在新选项卡中打开新窗口
- 进入新选项卡并加载页面
- 然后在新打开的页面上运行我的代码
我希望我已经很好地解释了自己!与往常一样,非常感谢任何信息。
您需要参考正确的窗口。最简单的方法是在要单击的每个单独页面上使用相同的id
,然后通过 <script>
标记的 src
属性包含以下脚本。
function openInNewTab(clickElement, url){
clickElement.onclick = function(){
var win = open(url);
win.focus();
var prm = win.prompt('Enter a Date: ', 'March 11, 2015');
if(prm){
console.log('The Date You Entered was: '+prm);
}
return win;
}
}
var pre = onload; // previous onload
onload = function(){ // window is implicit
if(pre)pre();
var newWin = openInNewTab(document.getElementById('click_input_id'), 'https://www.google.com')
}