【问题标题】:How to run a script that has src attribute using AJAX?如何使用 AJAX 运行具有 src 属性的脚本?
【发布时间】:2020-01-28 06:25:34
【问题描述】:

我在页面“page1.php”上有一个表单,如下所示:

<form id = "form1" action = "page2.php">
</form>

执行 Ajax 函数后,我使用 .append() 将以下脚本添加到此表单中:

<script id='mp_script'  src="https://www.mercadopago.com.br/integrations/v1/web-payment-checkout.js"
data-preference-id="9999999">
</script>

但是这个脚本没有运行,用ajax添加后怎么运行?

注意:除了 AJAX 之外,我无法添加此脚本,因为“data-preference-id”属性会根据用户在屏幕上选择的内容而改变。

【问题讨论】:

  • 为什么你确定你的新脚本没有执行?
  • 因为在执行此脚本时,屏幕上会包含一个按钮。
  • 您可以尝试加载另一个脚本文件,这可以帮助您检测脚本是否可以执行。例如:创建一个名为test.js 的文件,该文件包含alert('Hello!'); 之类的内容,然后以当前方式将append test.js 脚本添加到您的网站。

标签: javascript jquery


【解决方案1】:

你可以创建一个script标签,然后监听onload事件来执行你的逻辑。

const script = this.document.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.src = url; // the script url like 
script.onload = () => {
  // your logic after script load
};

this.document.body.appendChild(script);

【讨论】:

    【解决方案2】:

    这适用于本地主机

    var f = document.createElement("form");
    f.setAttribute('method', "post");
    f.setAttribute('action', "the-url-to-post");
    $('#div_mercadopago').append(f);
    
    var s = document.createElement("script");
    s.setAttribute('src', 'https://www.mercadopago.com.br/integrations/v1/web-payment-checkout.js');
    s.setAttribute('data-preference-id', Preference-ID**);
    
    // add all elements to the form
    document.body.appendChild(s);
    

    **我认为您从 webservice/ajax 获取的 Preference-ID

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 1970-01-01
      • 2021-05-03
      • 2013-06-17
      • 2014-10-19
      • 1970-01-01
      相关资源
      最近更新 更多