我正在尝试推迟或异步加载Trip Advisor小部件但由于某种原因它无法正常工作。
我认为异步或延迟可能无效,因为Trip Advisor脚本会执行document.write命令。
以下是Trip Advisor的小部件JS:https://www.tripadvisor.co.uk/Widgets-g186338-d187591-The_Ritz_London-London_England.html#w-selfserveprop
有人可以建议如何让这个脚本更高效吗?
以下是JSBin沙箱中的脚本 - https://jsbin.com/cawivusecu/edit?html,output
如果您尝试推迟或异步,您会发现它们似乎打破了小部件。
以下是Trip Advisor的hte代码供参考:
<div id="TA_selfserveprop20" class="TA_selfserveprop">
<ul id="wzAgNPZ2m6a" class="TA_links TEBLjL9Mu">
<li id="Cp4AmQch" class="w7hHfpS">
<a target="_blank" href="https://www.tripadvisor.co.uk/"><img src="https://www.tripadvisor.co.uk/img/cdsi/img2/branding/150_logo-11900-2.png" alt="TripAdvisor"/></a>
</li>
</ul>
</div>
<script src="https://www.jscache.com/wejs?wtype=selfserveprop&uniq=20&locationId=187591&lang=en_UK&rating=true&nreviews=5&writereviewlink=true&popIdx=true&iswide=false&border=true&display_version=2"></script>
答案 0 :(得分:0)
您无法推迟使用document.write()
的脚本加载。 document.write()
的本质意味着当解析器位于文档中的适当位置时必须执行它,这意味着您经常无法更改使用它的脚本所在位置以及何时加载它。
此外,解析文档后,document
对象将关闭,然后任何将来document.write()
将清除当前文档并打开一个新的空文档。所以,如果在延迟脚本中执行document.write()
,那将会发生什么。
如果您无法通过修改脚本来消除document.write()
,那么您可能无法推迟其加载。