Javascript 防止使用JS加载JS

Javascript 防止使用JS加载JS,javascript,twitter-bootstrap,modal-dialog,shopify,Javascript,Twitter Bootstrap,Modal Dialog,Shopify,现在我在Shopify上建立了一个商店,我正在使用一个安装在我们商店上的应用程序。此应用程序调用如下脚本: if(!add_to_order_tag) $('.product_rp_div.p{{ product.id }}').append('<script async class="add_to_order" src="https://ro.boldapps.net/recurring_settings/add_to_order?&shop_url={{ shop.perman

现在我在Shopify上建立了一个商店,我正在使用一个安装在我们商店上的应用程序。此应用程序调用如下脚本:

if(!add_to_order_tag)
$('.product_rp_div.p{{ product.id }}').append('<script async class="add_to_order" src="https://ro.boldapps.net/recurring_settings/add_to_order?&shop_url={{ shop.permanent_domain }}&group_id='+group_id+'&customer_id={{ customer.id }}&product_id='+prodId+'&variant_id='+myVariant+'"></'+''+'script>');
下面是他们的引导模型版本:

https://ro.boldapps.net/app_assets/js/bootstrap-modal.min.js

提前感谢您的帮助:D

避免这种令人厌烦的行为的一种方法是在加载库时重新分配相关模块,然后将其放回。它并不漂亮,但通常很有效:

var bootstrap-temp = Bootstrap.Modal;
loadIrritatingLibrary();
Bootstrap.Modal = bootstrap-temp;
这至少会让它在通话结束时回到正确的状态

不幸的是,Bootstrap将自己绑定到
jQuery
模块中,因此很难分离出来-实际的jQuery模态函数存储在
jQuery.fn.modal
中,但是由于模块的大部分是隐藏的,因此在加载其他脚本之后,可能需要在Bootstrap中加载

这两种方法都能起作用,因为JavaScript看到的代码版本是加载的最后一个版本,因此如果重复分配同一个变量,它将记住最后一个变量,并且函数可以像对象一样作为变量处理

一个更好的解决方案是使用像
RequireJS
这样的模块加载器,它应该确保所有内容只加载一次,但在这种情况下并不总是可用的


这还取决于问题是模态的版本被重新加载,而不是脚本中影响模态绘制方式的内容,根据您的描述,这也可能是问题所在。应该可以检查应用程序加载的版本,以确认是否存在与此相关的问题。

是否是加载了相同代码的不同版本导致了此问题?你对应用程序负载有多大的控制?你能给它加些代码吗?上面的代码调用应用服务器上的JS。所以我不能碰那个密码。不过,如果可能的话,我可以在调用之前添加js,以防止加载特定的js。代码的加载导致了问题,因为引导模式函数被加载了两次。如果我去掉那一行,modals可以正常工作。Bootstrap.Modal是一个对象,或者是什么?编辑后有更多的解释。不幸的是,对于jQuery插件来说,这有点难做到。。。
var bootstrap-temp = Bootstrap.Modal;
loadIrritatingLibrary();
Bootstrap.Modal = bootstrap-temp;