如何在 Vue.js 方法中使用外部 JavaScript 对象

2024-03-24

我正在尝试让 Stripe 与我的 Vue.js 2 应用程序一起工作。出于 PCI-DSS 原因,Stripe 要求其 Javascript总是从加载js.stripe.com https://stripe.com/docs/web/setup#setup。我已按照以下说明进行操作:

  • 如何将外部 JS 脚本添加到 VueJS 组件 https://stackoverflow.com/questions/45047126/how-to-add-external-js-scripts-to-vuejs-components
  • 如何在没有 NPM 或 Webpack 的情况下将 CDN 包含到 VueJS CLI? https://stackoverflow.com/questions/49330055/how-to-include-a-cdn-to-vuejs-cli-without-npm-or-webpack

但我得到一个'Stripe' is not defined当我尝试使用该库时出错。这些解决方案似乎只是为了获得<script>标记到输出 HTML 中(例如用于分析),而不是实际使用该脚本中的函数和对象。

我的 Javascript 组件如下所示:

<script>
    export default {
        name: "PaymentPage",
        mounted() {
            let stripeScript = document.createElement('script');
            stripeScript.setAttribute('src', 'https://js.stripe.com/v3/');
            document.head.appendChild(stripeScript);

            let s = Stripe('pk_test_Fooo');
            console.log(s);
        }
    }
</script>

我还尝试将脚本标签添加到我的public/index.html文件,但我得到了相同的结果。这可能是我的首选路线,因为 Stripe 鼓励开发人员在网站的所有页面上导入他们的脚本 https://stripe.com/docs/web/setup#setup.

<!DOCTYPE html>
<html lang="en">
  <head>
    // ...
    <script src="https://js.stripe.com/v3/"></script>
  </head>

如何从外部 CDN 提取脚本并在组件的 Javascript 中使用它?

我知道一些库可以将 Vue.js 与 Stripe 集成(例如matfish2/vue-stripe https://github.com/matfish2/vue-stripe and jofftiquez/vue-stripe-checkout https://github.com/jofftiquez/vue-stripe-checkout),但前者对我来说不能正确导入(我正在打问题#24 https://github.com/matfish2/vue-stripe/issues/24),后者是针对旧的 Stripe API 构建的,新版本仍处于测试阶段。


在检查是否之前没有给脚本时间加载Stripe有没有。你需要的是这样的:

<script>
    export default {
        name: "PaymentPage",
        mounted() {
            let stripeScript = document.createElement('script');
            stripeScript.setAttribute('src', 'https://js.stripe.com/v3/');
            stripeScript.onload = () => {
              let s = Stripe('pk_test_Fooo');
              console.log(s);
            };

            document.head.appendChild(stripeScript);
        }
    }
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Vue.js 方法中使用外部 JavaScript 对象 的相关文章

随机推荐

  • 了解隐式声明的默认构造函数

    我试图了解编译器的默认构造函数是如何工作的 我做了这个例子 include
  • iOS/Android跨平台开发[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经尝试用 Java 开发 Android 应用程序有一段时间了 并且开始掌握它 然而 如果我想开始使用 iOS 版本 我需要从头开始编
  • 如何理解clojure的lazy-seq

    我正在尝试理解 Clojurelazy seq运算符 以及惰性求值的一般概念 我知道这个概念背后的基本思想 表达式的求值被延迟 直到需要该值为止 一般来说 这可以通过两种方式实现 在编译时使用宏或特殊形式 在运行时使用 lambda 函数
  • 从 Com Interop Assembly 中查找 COM DLL 路径

    我正在尝试围绕旧版 COM 对象编写一个包装器 并将该包装器安装到 GAC 中 目标是自动设置组件所需的特定配置信息 并为我的所有应用程序使用一个通用的强类型接口 到目前为止 我的解决方案是将 XML 配置文件保留在与原始 COM DLL
  • 计算差异考虑到我们有两个不同的时间和日期字符串,两次之间

    我将时间数据分为两个字符串 一个字符串表示日期 另一个字符串表示时间 我想计算差异 在Java中这样的两次 e g 时间 1 26 02 2011 和 11 00 AM 时间 2 27 02 2011 和 12 15 AM 相差大约 13
  • Java:从字符串中删除数值

    在该社区的帮助下 我成功地从用户输入中删除了数字值 但是 下面的代码将仅检索已删除的数字之前的字母字符 import java util Scanner public class Assignment2 A public static vo
  • Android:更改默认家庭应用程序

    对于某些特定要求 我需要更改 Android 默认主页应用程序 使用我的自定义主页应用程序 我的应用程序内的一个设置 将切换默认主页 我的应用程序或以前的主页 我不希望用户进行非常复杂的 Android 设置 任何人都可以帮我解决一下它在哪
  • 在哪里可以初始化模块范围的变量?

    我正在尝试做这样的事情 angular module MyModule ui config function rootScope rootScope Gender M Male F Female U Unknown 但我收到这个错误 未捕获
  • Bash 中的 [ 和 [[ 有什么区别? [复制]

    这个问题在这里已经有答案了 我查看了 bash 手册页和 说它使用条件表达式 然后我查看了条件表达式部分 它列出了与test and 所以我想知道 有什么区别 and 在巴什 bash 的改进是 命令 它具有多项增强功能 如果您编写针对 b
  • 使用 Android 格式化字符串时间戳

    出于某种原因 这让我抓狂了 我在 Android 中有一个 UNIX 时间戳作为字符串 我想要做的就是对其进行格式化 以便它返回用户的 droid 时区中的日期 时间 我可以将其转换为时间戳 但它使用 GMT 而不是其本地化区域 Thank
  • 如何一次性将排序规则更改为utf8_bin

    我已将所有数据库表的排序规则设置为latin1 swedish ci现在我意识到我应该使用utf8 bin or utf8 general ci 如何将表中的排序规则更改为utf8 bin or utf8 general ci一气呵成 我可
  • 谷歌地图自动完成、带有边界框的严格边界和自定义 UI

    我有一个输入 我想用作谷歌地图自动完成搜索 但具有一些自定义 UI 制作标准自动完成小部件 https developers google com maps documentation javascript reference Autoco
  • 如何在布线级别验证 Rails 中的静态参数?

    我目前有以下宁静的网址 questions 2011 05 我的提问路线是 match questions year month gt Questions month 如何在路线级别验证上述年份和月份参数 以便 年和月是整数 最短 最长一年
  • android numberpicker 用于浮点数

    我们应用程序的用户应该能够调整浮点数 目前 我用所有可能的值填充了 ArrayAdapter 并将其附加到微调器 这个解决方案并没有真正满足我们的期望 因为旋转下拉框太高了 有没有更好的办法 我正在查看 Numberpicker 但这似乎只
  • 造型 ActionBar Sherlock

    我正在尝试自定义我的 sherlock 操作栏 但我在 style xml 中编写的任何代码都未被识别 在我的清单文件中 android theme style Theme Sherlock 我的样式 xml
  • 通过 nginx 和 ServiceStack 在 fastcgi-mono-server 上进行小负载测试后,网关 502 错误

    我正在尝试在 nginx 和 fastcgi mono server 下使用 ServiceStack 运行 Web 服务 API 服务器启动正常 API 已启动并运行 我可以通过 ServiceStack Profiler 在浏览器中查看
  • Scala-IDE 中工作表中的类导致错误

    只需在工作表中键入以下内容即可实例化一个类 注意 工作表是使用 文件 gt 新建 gt Scala 工作表 创建的 sc文件 不是普通文件 scala文件 并单击保存会导致虚假错误 鼠标移到 这条线上有多个标记 简单表达式的非法开头 符合预
  • 基于检查约束的分区修剪未按预期工作

    为什么下面的查询计划中包含表 events 201504 根据我的查询和该表的检查约束 我希望查询规划器能够完全修剪它 database d events 201504 Table public events 201504 Column T
  • Clojure WebSocket 应用程序的 nginx 产品设置

    我正在尝试部署我的第一个 Clojure WebSocket 应用程序 我想我已经很接近了 我在本地得到了很好的响应 看起来端点想要面对外界 当我运行时我看到端口是开放的netstat 但没有任何反应 我确信我的某些设置不正确nginx 我
  • 如何在 Vue.js 方法中使用外部 JavaScript 对象

    我正在尝试让 Stripe 与我的 Vue js 2 应用程序一起工作 出于 PCI DSS 原因 Stripe 要求其 Javascript总是从加载js stripe com https stripe com docs web setu