寻找JavaScript创可贴

时间:2015-11-20 15:18:39

标签: 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文件中设置为之前没有任何内容,因此除非有办法设置变量并且之后不允许更改,否则我无法手动将其设置为其他内容。

1 个答案:

答案 0 :(得分:0)

如果您可以在此JS之前添加HTML,请执行以下操作:

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

如果已经有匹配元素,则该元素将首先[0],这将被忽略。

如果不是,这将不符合您的任何情况,因此代码无效。