2015-11-20 30 views
1

我有被稱爲在我結束標記這確實應該調整接近頁面底部的JavaScript文件的一些代碼...尋找一個JavaScript創可貼

if(wa.URLchunk1 == "https://www.example.com/bla/") { 
    wa.selectedLink = dojo.query ('.wcmLeftNavSelectedLink')[0].innerHTML; 
    if(wa.selectedLink.indexOf('some text') != -1) 
     wa.customPageName = wa.customPageName + 'some text/'; 
    else if(wa.selectedLink.indexOf('some other text') != -1) 
     wa.customPageName = wa.customPageName + some other text/'; 
    else if(wa.selectedLink.indexOf('some other other text') != -1) 
     wa.customPageName = wa.customPageName + 'some other other text/'; 
} 

在大多數情況下,這代碼對我來說工作正常,但在某些情況下,wcmLeftNavSelectedLink類是未定義的,會破壞我的代碼。理想情況下,代碼應該調整爲包含邏輯,以便在該類存在時僅設置wa.selectedLink。但是,我的問題是我不能再更新這個JavaScript文件。我的客戶將代碼凍結到位,並且不允許對網站進行更新,因爲它最終將被淘汰。

我確實有一個標籤管理平臺,所以我可以在頁面中進一步設置新的JavaScript。 所以我的問題是,有沒有什麼巧妙的解決方法,當wcmLeftNavSelectedLink類未定義時,可以讓我停止這段代碼的啓動,牢記我無法直接更改代碼。在代碼觸發之前,我只能設置新的代碼。

僅供參考,wa.URLchunk1在此JS文件中沒有設置,因此我不能只是手動將其設置爲其他東西,除非有辦法設置變量並且不允許在之後進行更改。

+0

如果它不存在,只需再添加一個類 - 那麼代碼不應該出錯。 – tymeJV

+0

這是我最近看到的最奇怪的要求之一。沒有冒犯,但告訴客戶,如果他想修正你需要更改代碼的錯誤。如果你不能這樣做,他必須忍受它。 –

+0

LOL弗洛裏安。是的,這個客戶是那些不太容易處理類型的人之一。 ;) –

回答

0

如果這個JS之前,你可以添加HTML,這樣做的:

<span class="wcmLeftNavSelectedLink" style="display:none"></span> 

如果已經有一個與之匹配的元素,一個將首先[0],這將被忽略。

如果不是,這將不匹配您的任何情況,因此代碼無效。

+0

當解決方案很簡單時,我很喜歡。謝謝保羅。 –