2011-06-04 4 views
1

私は答えが簡単だと分かっていますが、私はちょっと壁に頭を打ちました。私はいくつかのプログラミング経験を持っていますが、主にPHPです。私が作業しているサイトが、外部リンクを自動的に検出して新しいウィンドウで開くスクリプトが必要なインスタンスを見つけました。私は2つの別々のJavaScriptコードを見つけましたが、それらはきれいに動作しますが、問題は外部リンクと見なすhref = "#B"のようなアンカータグがあるところです。私は重要な研究を行い、indexOfとendWith()関数を実行しようとしましたが、どちらも#letter(つまり#B)を持つリンクを無視していません。外部リンクスクリプト用の新しいウィンドウでアンカータグを省略するためのJavascriptの取得

私はいくつかの助けや指針を得ることができたらうれしいです。私は上記のように、私は#は以下のようにリンクに存在するかどうかを見つけるためにインデックスを使用してみました

assigntarget:function(){ 
var rexcludedomains=new RegExp(this.excludedomains.join("|"), "i") 
var all_links=document.getElementsByTagName("a") 
if (this.mode=="auto" || (this.mode=="manual" && this.togglebox.checked)){ 
    for (var i=0; i<=(all_links.length-1); i++){ 
     if (all_links[i].hostname.search(rexcludedomains)==-1 && all_links[i].href.indexOf("http:")!=-1) 
      all_links[i].target=ddwindowlinks.linktarget 
    } 
} 
else{ 
    for (var i=0; i<=(all_links.length-1); i++) 
     all_links[i].target="" 
} 

:任意の助け

for (var i=0; i<=(all_links.length-1); i++){ 
     if (all_links[i].hostname.search(rexcludedomains)==-1 && all_links[i].href.indexOf("#") ==-1 && all_links[i].href.indexOf("http://") !=-1) 
      all_links[i].target=ddwindowlinks.linktarget 

おかげで私はネット上で見つけ以下のコードを参照してください。またはpotiners。

+0

this.excludedomainsの価値は何ですか? – Annie

+0

Annieにはポイントがあります。除外されたドメインに現在いるサイトはありますか?通常#は#http://siteyouareon.com/pageyouareon.html#....に翻訳されます。 – mplungjan

+0

値は - excludedomains:["yourdomain.com"、 "google.com"]、私は#Bを試しました除外されたドメインで#を試しましたが、まだそれはありません。私はワードプレスを使用していると私はそれと何か関係があるかどうかはわかりません。私が使用するWordPressのテンプレートアンカーはすべて、ページを先頭に戻すアンカーのようなものです。しかし、別のサイトのアンカータグから使用している用語集は、外部リンクとして認識されます。 –

答えて

0

あなたはいつもちょうどアンカータグそれに対して

var str = str.replace(/#.*$/, "") 

とテストを取り除くことができます。私はちょうどthis.excludedomains.join("|")と同じものを見てみたいと思っています。

+0

これらは上部にプリセットされています。ドメインが手動で失敗するように設定することができます。 var ddwindowlinks = { // 1)新しいウィンドウを開くと除外するドメインを入力してください: excludedomains:["yourdomain.com"、 "google.com"]、 ' –

+0

これを正しく読んでいれば、特殊文字/#。それはうまくいくとは思わない。コードがそれも外部リンクだと思うhref = Bが存在するためです。もう一度私は間違っている可能性があるので、私はJavascriptの構文に精通していないことを理解してください。 –

関連する問題