連結不起作用

連結不起作用

當我點擊target=_blank[1] 連結時,IE11 將開啟一個新的空白選項卡,而不是預期的選項卡。這在 Chrome[2] 中工作正常,但在 IE8 中失敗,現在在 IE 11 中失敗。

我重置了瀏覽器設定(Internet 設定/進階標籤)並升級到 IE 11,試圖解決此問題。

更改選項卡設定似乎確實會影響這一點,但沒有選項獲得預期的行為。

[1]範例程式碼:

<A class=oLinkExternal href="http://orgintranet.org.co.uk/systems/ibd-db/" target=_blank>IBD database</A>

[2]版本42.0.2311.135

答案1

由於target="_blank"Works 但 not target=_blank,這看起來像是 IE11 的錯誤,無法正確解析以下劃線開頭的屬性。

我能想到的解決這類錯誤的方法是:

  1. 使用另一個更好的瀏覽器
  2. 修復網路上的每個頁面,替換target=_blanktarget="_blank"

對於第一個選項,您不需要我的幫助。

第二種選擇並不像聽起來那麼不可能。我將在下面概述一種方法,但您應該考慮到我不使用 IE11 並且從未嘗試過此方法。

修改載入的 HTML 頁面的軟體是油猴。 IE11 存在一些對其的修改(品質未知):

假設其中一個有效,以下是一個可以完成這項工作的使用者腳本:

// ==UserScript==
// @name        your-choice
// @namespace       http://avoid.collusions.com
// @description     Resets target="_blank" links hoping to add quotes.
// @include     *
// ==/UserScript==
(function () {
    var external = document.links; 
    for (var k=0; k<external.length; k++)   
        if (external[k].href && external[k].target=="_blank") 
            external[k].target = "_blank";
})();

這假設(也許是錯誤的)Greasemonkey 將在其替換的屬性周圍添加引號。如果沒有發生這種情況,可以修改腳本以強制使用引號。

由於我沒有進行任何測試,如果這種方法不起作用,我會提前道歉。

答案2

您可以使用 jQuery 刪除 target='_blank' 屬性

就像是

$document.ready(function(){
 $("a").attr('target','_blank');
});

或者只是js

var as = [].slice.apply(document.getElementsByClassName('oLinkExternal'));
for (var a in as){as[a].target="");}

相關內容