相关疑难解决方法(0)

什么'var that = this;' 用JavaScript表示?

在JavaScript文件中,我看到:

function Somefunction(){
   var that = this; 
   ... 
}
Run Code Online (Sandbox Code Playgroud)

声明that和分配给它的目的是什么this

javascript this

346
推荐指数
4
解决办法
11万
查看次数

脚本标记的type属性的javascript MIME类型是什么?

什么是javascript 的MIME类型?

更具体地说,在脚本标记的"type"属性中放入什么是正确的?application/x-javascript而且text/javascript似乎是主要的竞争者.

javascript mime-types

111
推荐指数
3
解决办法
7万
查看次数

Vuejs 2:如何在 DOM 中动态包含(并运行)脚本标记 javascript 文件?

我正在使用 Vuejs,我需要动态地在 DOM 中插入脚本标签,以这种方式嵌入 JWPlayer 视频:

<body>
 <!-- HTML content -->
 <script src="//content.jwplatform.com/players/KZVKrkFS-RcvCLj33.js"></script>
 <!-- More HTML content -->
 <script src="//content.jwplatform.com/players/ANOTHER-ID-ANOTHER-PLAYERID.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

我使用没有结果:v-html指令来呈现 html 标签。以及v-bind:src但都不执行代码。我找到了这个解决方案,但它也不起作用:How to add external JS scripts to VueJS Components

我使用了这个解决方案,但脚本标签(每个视频一个)必须插入正文(而不是头部):它们应该创建 div 标签容器并嵌入视频。问题在于嵌入的 JWPlayer 文件包含一个 document.write() 语句。浏览器控制台说:“从异步加载的外部脚本调用 document.write() 被忽略了。”

有没有办法实现这一目标?

html ajax jwplayer vue.js vuejs2

5
推荐指数
1
解决办法
6595
查看次数

如何将 vanilla JavaScript 添加到 vue.js 项目?

美好的一天,我对 vue.js 非常陌生,想要一个导航栏,默认情况下它是透明的,但在滚动时会改变其背景。不幸的是,它不起作用。我尝试了 fe 解决方案,但没有一个奏效。所以这个 JavaScript 代码是 Stack Overflow 的一个例子,它在 Fiddle 中工作。如果您需要更多信息和/或代码,请告诉我。

导航.vue

<template>
    <div id="navigation"> 
        <nav class="nav-items"> 
            <router-link class="item" to="/home">Home</router-link>
            <router-link class="item" to="/about">About</router-link>
            <router-link class="item" to="/japan">Japan</router-link>
        </nav> 
    </div>
</template>

<script>
export default {
    name: 'navigation'
}

import scroll from '../assets/js/scroll.js';

</script>
Run Code Online (Sandbox Code Playgroud)

滚动.js

const navbar = document.querySelector('#navigation')

window.addEventListener('scroll', function(e) {
  const lastPosition = window.scrollY
  if (lastPosition > 50 ) {
    navbar.classList.add('colored')
  } else if (navbar.classList.contains('colored')) {
    navbar.classList.remove('colored')
  } else {
    navbar.classList.remove('colored')
  }
})
Run Code Online (Sandbox Code Playgroud)

导航.scss

仅供参考:我在这里删除了不必要的代码。

#navigation {
    background: transparent;

    .colored …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js

5
推荐指数
1
解决办法
8541
查看次数

在 VueJS 组件中嵌入 Twitter feed

我正在尝试在我的 VueJS 网站上包含一个 Twitter feed,其样式来自 Twitter。在经典的 html / JS 网站上,可以使用https://help.twitter.com/en/using-twitter/embed-twitter-feed。但由于此方法会在我的代码中生成一个<a>带有要复制的标记<script>,因此当只需将其粘贴到组件中时,它会触发 VueJS 的“编译失败”错误。有没有什么办法可以做到这一点,而不需要在定制组件中重写类似 Twitter 的界面?

twitter vue.js

5
推荐指数
0
解决办法
3774
查看次数

在 Vue 组件中使用 3rd 方 Javascript 库

我正在使用 Webpack 和 VueJs 2。我想在我的组件中使用 3rd 方 javascript 库,例如:

<script async defer src="https://apis.google.com/js/api.js" ... ></script>
Run Code Online (Sandbox Code Playgroud)

我在这里找到了一篇关于如何对 npm 包执行此操作的文章,但这对我不起作用,因为该库不能作为 npm 包使用。

我无法在本地下载文件并使用它,因为库可能会更改并停止工作。因此,每次浏览器加载页面时,都必须从链接加载它。

我在这里找到了一个可能的解决方案但这基本上是一个 hack(script在加载文档后修改 dom 以添加一个元素)

我相信这个问题必须有一个简单的良好实践解决方案,因为我认为这是一个常见的用例。

更新: 如果我将脚本放在索引文件中的 head 标签内,它将为所有组件加载。出于性能原因,我希望它只为某个组件加载。

webpack vue.js vuejs2

4
推荐指数
2
解决办法
6029
查看次数

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

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

但当我'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>
Run Code Online (Sandbox Code Playgroud)

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

<!DOCTYPE html>
<html lang="en">
  <head>
    // ...
    <script src="https://js.stripe.com/v3/"></script> …
Run Code Online (Sandbox Code Playgroud)

javascript stripe-payments vue.js vue-component vuejs2

4
推荐指数
1
解决办法
4815
查看次数

如何在Vue中包含本地脚本文件

我有一个用 VS 代码编写的基本项目,而且任务非常简单。我想以正确的方式在我的项目中包含一个旧的 javascript 文件,以便在浏览器中加载它。
该文件应位于 src\assets\scripts\oldLegacyScript.js

我尝试了这个技巧:如何将外部 JS 脚本添加到 VueJS 组件,它会<source>在运行时在文档中注入一个标签。这仅适用于我将 .js 文件放在生成的公共文件夹中编译文件所在的位置。如果文件不在公共文件夹中,浏览器会尝试下载我无法理解的 index.html 文件:

文件未找到 在此处输入图片说明

如果我遵循此解决方案:导入 javascript 文件以在 vue 组件中使用,我会在导入语句中遇到语法错误: 在此处输入图片说明

那么我该如何克服在我的 Vue 项目中导入一个简单的 javascript 文件的简单任务呢?

vuejs2

2
推荐指数
1
解决办法
3945
查看次数

Vue:Stripe 未定义 - 是否需要在任何地方都包含 Stripe?

当我尝试仅在我需要的模板中包含条带依赖项时(在 Laravel Blade 中):

@push ('head_scripts')
    <script src="https://js.stripe.com/v3/"></script>
@endpush
Run Code Online (Sandbox Code Playgroud)

..我收到错误“ ReferenceError: Stripe is not defined”。所以我把它包含在我的主要“头部”部分中,所以它无处不在。然后我在进入管理部分时遇到了同样的错误,因为它不包含在该模板中。

但它真的需要无处不在吗?

它仅用于一个 vue 组件,如下所示:

<script>
    let stripe = Stripe(`pk_test_zzzzzzzzzzzzzzz`);
    let elements = stripe.elements();
    let card = undefined;
Run Code Online (Sandbox Code Playgroud)

即使未呈现该组件,它似乎也会被评估。我能以某种方式解决这个问题吗?

stripe-payments vue.js

2
推荐指数
1
解决办法
2358
查看次数