3rd Party Script Breaking my JS
我有一个第三方脚本,在我的网站上显示一些数据。当脚本加载时,它会破坏脚本所在的任何页面上的所有JS。我删除了脚本,我的页面可以毫无问题地工作。
是否有方法阻止第三方脚本以打断页面的方式与我的页面交互?
笔记:
- 我无法访问要编辑的第三方脚本。
- 我正在使用jquery来查找正在破坏的脚本。我已经准备好了
jQuery.noConflict ,但它仍然打破了这一页。 - 我尝试将脚本加载到iframe中,以查看这是否会产生影响。它没有。
- 该脚本将数据写入页面,主要是CSS和HTML
注:以下代码可能包含药物含量的参考/链接,主要是大麻。
我正在为医用大麻药房建一个场地。我正在从一个名为weedmaps的网站导入药房菜单。他们的嵌入代码如下:
1 2 | <script type="text/javascript">var wmenu_id = 1111; //The number correlates to the menu I need to pull, I have changed it in this question <script type="text/javascript" src="http://legalmarijuanadispensary.com/components/com_weedmenu/weedmenu-widget.js"> |
当我使用上述代码时,我的站点的JS会中断。如何防止我的代码在使用第三方脚本时被破坏,对此我没有控制权。
更新
这是一把JS小提琴。菜单打开,但没有正确关闭。从weedmaps中删除正在生成菜单的脚本,菜单工作正常。(weedmaps菜单脚本位于HTML面板的底部。)
脚本编写得不好,我可以通过从脚本中删除一行代码来解决我的问题。我提供的链接列表指向一个较长的脚本。脚本有以下代码行:
1 2 3 | try { b("http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"),"function" != typeof wmenu_strains_callback && b("http://legalmarijuanadispensary.com/components/com_weedmenu/weedmenu.js", !0) } |
如果我删除了
嗯,运气不好。我会补充一下我所拥有的,因为它可能会引发你的进一步想法。不过,简而言之,我认为他们的脚本编写得不太好,他们确实需要在最后解决这个问题。
现在,在设置菜单动画时,firefox会显示此错误:
TypeError: jQuery.easing[jQuery.easing.def] is not a function
这个博客建议在jquery之前加载宽松插件时会发生这种情况。好吧,我想-我们只需要在jquery加载之后加载weedmenu脚本。所以我尝试了以下方法(在这里的帮助下):
1 | $j.getScript('http://legalmarijuanadispensary.com/components/com_weedmenu/weedmenu-widget.js'); |
这给了我这个错误:
A call to document.write() from an asynchronously-loaded external script was ignored.
事实证明,这是由于使用
1 | crapLoader.loadScript("http://legalmarijuanadispensary.com/components/com_weedmenu/weedmenu-widget.js","menu-script"); |
不幸的是,这让我回到了最初的放松错误。
这是我的叉子-如果有发现请告诉我!