2

ブラウザでJavaScriptまたはJqueryを使用してハイパーリンクの属性をキャッチして新しいタブイベントを開くことはできますか?

ハイパーリンクがあり、リンク<a href="http://example.com/something">MyLink</a>を右クリックして新しいタブを開くと、最初にアラートが表示されるとしましょう " http://example.com"

4

2 に答える 2

2

これは、ブラウザ拡張機能を作成する場合にのみ可能だと思います。この種のものをJavaScriptで制御することはできません。

于 2013-01-31T18:27:53.260 に答える
2

さて、これは私が思いつくことができる最高のものですが、それはきれいではありません。

ページ上のすべてのリンクが別のページを指すようにします(これをredir.htmlと呼びます)。redir.htmlには、次に開くページを定義するURLを介してパラメーターが渡されます(のように)redir.html?page=www.example.com/something。次に、redir.htmlは、おそらく新しいタブ/ウィンドウで開かれた場合にのみ、必要なJavaScriptを実行します。これは、かどうかを確認することで検出できますwindow.history.length === 1

redir.html:

<script>
function getParameter(param) {
            var val = document.URL;
            var url = val.substr(val.indexOf(param))  
            var n=url.replace(param+"=","");
            return n;
}
var page = getParameter("page");
if(window.history.length === 1)
{
    alert("I opened in a new tab or window");
}

window.location.href = page;
</script>

ソースページのアンカータグの例:

<a href="redir.html?page=http://example.com/something">My link</a>

このSO投稿getParameterから関数を取得しました。)

于 2013-01-31T18:52:48.420 に答える