[英]window.open and window.location does not work
我正在嘗試使用用戶腳本來模擬點擊出現的通知。
Greasemonkey腳本checkForBadJavascripts ,將通知的原始JS代碼替換為修改后的代碼。
原始代碼的一部分是
onClickHandler = function() {
var win = window.open(data.url, '_blank');
win.focus();
};
var notification = $.notification(options);
修改后的代碼是
onClickHandler = function() {
console.log("click!");
var win = window.open(data.url, '_blank');
win.focus();
};
var notification = $.notification(options);
onClickHandler();
該代碼已成功替換,並且當通知出現時onClickHandler便被執行,我可以看到“ click!”。 在我的控制台中。 但是,未打開新窗口。 我也嘗試了以下代碼。
var notification = $.notification(options);
console.log("click!");
window.location.href = "http://google.com";
我仍然可以看到“點擊!” 在控制台中,每當出現通知時,由於某種原因嘗試打開google都不會執行任何操作。
當我打字
window.location.href = "http://google.com";
直接進入控制台,它執行起來沒有任何問題。 這是什么原因以及如何使其起作用?
根據我的評論, windows.location.href
不是一個函數。
另外,在提供的代碼中,您沒有將任何內容傳遞到onClickHandler
所以此data
onClickHandler
在哪里?
給定提供的代碼,在下面查看此插件 。
onClickHandler = function(data) {
console.log("click!");
var win = window.open(data.url);
win.location.href = data.url; // you could skip this
win.focus(); // I belive this could also be skipped
};
onClickHandler({url: 'http://www.stackoverflow.com'});
此外,由於您已經在window.open()
提供了url,因此無需使用windows.location.href
。
在我的瀏覽器(Chrome)中,我有一個阻止彈出窗口的插件,因此,如果您也這樣做,則應該在位置欄中看到窗口被阻止到最右邊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.