我在 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 文件中之前没有设置为任何内容,因此我不能手动将其设置为其他内容,除非有一种方法可以设置变量并且不允许随后更改它。
最佳答案
如果您可以在此 JS 之前添加 HTML,请这样做:
<span class="wcmLeftNavSelectedLink" style="display:none"></span>
如果已经有一个匹配元素,则该元素将位于第一个[0]
,并且该元素将被忽略。
如果不,这将不匹配您的任何情况,因此代码实际上什么都不做。
关于javascript - 寻找 JavaScript 创可贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33830163/