-1

このコードを使用して、すべての外部リンクを選択し、新しいタブで開くようにすることができます。

$.expr[':'].external = function(obj){
    return !obj.href.match(/^mailto\:/)
           && (obj.hostname != location.hostname)
           && !obj.href.match(/^javascript\:/)
           && !obj.href.match(/^$/)
};

$('a:external').attr('target', '_blank');

それを変更する方法はありますか

したがって、この機能を実行します。

 var newwindow; function poptastic(url){
  newwindow=window.open(url,'name', 'height=800,width=1020,scrollbars=yes');
    if (window.focus) {newwindow.focus()}}

最終的には、一番下の機能だけを実行したいのですが、すべての外部リンクにアクセスして、これを各外部リンクに追加する必要はありません。

 <a href="javascript:poptastic('http://www.external-link.com')">External Link</a>

(これが気に入らない人がいることは知っています。target= "_ blank"を実行するだけでなく、新しいウィンドウを開く必要がありますが、年齢層の少数のユーザーにクライアントのサイトを尋ねました。そして彼らは皆、新しいタブで開くよりもこの方法を大いに好んだ)。

また、上部に追加して、.PDFファイルでも上記のコマンドを実行できるようにする方法はありますか?外部サイト専用に設定されていますが、.pdfについても例外を設けることができますか?

どうもありがとう!

4

1 に答える 1

1
$('a:external').click(function(e){
    e.preventDefault();
    poptastic(this.href);
});

つまり、外部リンクのいずれかをクリックすると、デフォルトのクリック動作(もちろん、指定されたURLに移動し、現在のページを置き換える)を防ぎ、代わりpoptastic()にhrefを渡して関数を呼び出します。

(あなたはあなたの体をpoptastic直接.clickハンドラーに入れることができます...)

編集: PDFについても同じことを行うには、セレクターを変更して:externalPDFを含める場合(「PDF」を末尾がhrefであると定義している場合)、次のように".pdf"実行できます。

$.expr[':'].external = function(obj){
    return !obj.href.match(/^mailto\:/)
           && (obj.hostname != location.hostname || /.pdf$/.test(obj.href))
           && !obj.href.match(/^javascript\:/)
           && !obj.href.match(/^$/)
};

デモ:http://jsfiddle.net/RevXG/4/

于 2012-08-25T06:59:00.753 に答える