2017-09-19 12 views
0

URLに一致するようにしようとしています.IDがURLに存在するかどうかによって、オーバーレイをトリガーするクラスが追加されます。現在のwindow.location.hrefに一致するとヌルのプロパティ 'length'を読み取ることができません

最後に次のURLを追加してURLに移動すると、?active-overlay=jj-instagram-feed-widget-2が表示され、オーバーレイが発生してすべてが機能しています。

私はactive-overlay URLパラメータを指定せずにページに直接移動しかし、私は次のコンソールエラーが表示されます。

Cannot read property 'length' of null. 

イムエラーを推測するが、それはURLでactive-overlayを見つけることができないため、解雇されました。

どうすればこの問題を回避できますか?ここで

は私のコードです:

var url = window.location.href; 
if (url.match("active-overlay").length > 0) { 
    var activeOverlayID = url.match(/=(.+)/)[1]; 
    $('#' + activeOverlayID + '').find('.instagram-feed__image').siblings().addClass('popup'); 
} 
+0

が一致しない手段を用いて試すことができ、簡単なデバッグはあなたのことを示しているだろう。 'console.log(" match: "、url.match(" active-overlay "))' – epascarello

+0

Mikkelは私の答えを確認します –

答えて

1

は、あなただけの

var url = window.location.href; 
var matchUrl = url.match("active-overlay"); 
if (matchUrl !== null && matchUrl.length > 0) { 
    var activeOverlayID = url.match(/=(.+)/)[1]; 
    $('#' + activeOverlayID + '').find('.instagram-feed__image').siblings().addClass('popup'); 
} 

その場合は、だからあなたのコードがされることを条件チェック

url.match("active-overlay") !== null 

nullをチェックする必要がありますmatchUrlnullです。明細書はになります。となり、次の条件&&には移動しません。上記の条件のいずれかがfalseである場合、 '& &'は偽になります。

+0

助けてくれてありがとう、これは問題を解決します。タイムリミットが経過するとすぐに解決策としてあなたの答えを承認します:) –

+0

ありがとう@MikkelFennefoss。あなたを助けてうれしい –

0

あなたはこの

if (url.match("active-overlay")!=null && url.match("active-overlay").length > 0) { 
    var activeOverlayID = url.match(/=(.+)/)[1]; 
    $('#' + activeOverlayID + '').find('.instagram-feed__image').siblings().addClass('popup'); 
} 
関連する問題