簡體   English   中英

window.open和window.location不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM