【问题标题】:Accessing imported javascript functions from another imported script从另一个导入的脚本访问导入的 javascript 函数
【发布时间】:2018-09-23 02:40:43
【问题描述】:

就上下文而言,我正在开发一个使用拖放工具编写的网站。幸运的是,该网站允许您嵌入 HTML、CSS 和 javascript。

我希望在https://github.com/timekit-io/booking-js 处嵌入一个自定义版本的timekit 小部件,它会在接受预订之前先进行条纹支付。

为了做到这一点,我需要从我的 booking.js 中访问条带函数。似乎一个简单的方法是通过以下方式在页面上同时导入 timekit 小部件和条带 js:

<script src="https://js.stripe.com/v3/"></script>

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"</script>

<script src="https://rawgit.com/Path/To/custom/booking.js" defer></script>

如果我想从 booking.js 的条带导入中访问函数,这可能吗?例如,在其他语言中,我可以从 booking.js 做这样的事情:

import Stripe

var x = Stripe.someFunction();

我知道这过于简单了,但我不是来自网络背景,我不确定它是如何工作的。谢谢。

【问题讨论】:

  • 您应该能够完全按照您的方式添加 Stripe 并在不需要导入调用的情况下访问它。你试过什么代码?发生了什么具体错误?

标签: javascript jquery stripe-payments


【解决方案1】:

我认为你可以使用:

import * as Stripe from 'https://js.stripe.com/v3/';

在您的 booking.js 中如下:

  import * as Stripe from 'https://js.stripe.com/v3/';

  Stripe.someFunction();

或者您可以在 HTML 页面中制作模块脚本:

<script type="module">
  import * as Stripe from 'https://js.stripe.com/v3/';

  Stripe.someFunction();
</script>

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

【讨论】:

  • 来自该链接。 “此功能目前仅在 Safari、Chrome 和 Edge 中原生实现。”
  • 嗯,我只是得到一个语法错误 - Uncaught SyntaxError: Unexpected token import
【解决方案2】:

我现在已经设法解决了这个问题。为此,我刚刚将type="module" 添加到我正在导入的脚本标记中(在本例中为条纹)。

这让我可以随心所欲地访问它,而无需导入语句。

【讨论】:

    猜你喜欢
    • 2020-01-15
    • 1970-01-01
    • 2018-06-21
    • 2021-02-13
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多