在JavaScript文件中,我看到:
function Somefunction(){
var that = this;
...
}
Run Code Online (Sandbox Code Playgroud)
声明that和分配给它的目的是什么this?
什么是javascript 的MIME类型?
更具体地说,在脚本标记的"type"属性中放入什么是正确的?application/x-javascript而且text/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() 被忽略了。”
有没有办法实现这一目标?
美好的一天,我对 vue.js 非常陌生,想要一个导航栏,默认情况下它是透明的,但在滚动时会改变其背景。不幸的是,它不起作用。我尝试了 fe 解决方案,但没有一个奏效。所以这个 JavaScript 代码是 Stack Overflow 的一个例子,它在 Fiddle 中工作。如果您需要更多信息和/或代码,请告诉我。
<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)
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)
仅供参考:我在这里删除了不必要的代码。
#navigation {
background: transparent;
.colored …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 VueJS 网站上包含一个 Twitter feed,其样式来自 Twitter。在经典的 html / JS 网站上,可以使用https://help.twitter.com/en/using-twitter/embed-twitter-feed。但由于此方法会在我的代码中生成一个<a>带有要复制的标记<script>,因此当只需将其粘贴到组件中时,它会触发 VueJS 的“编译失败”错误。有没有什么办法可以做到这一点,而不需要在定制组件中重写类似 Twitter 的界面?
我正在使用 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 标签内,它将为所有组件加载。出于性能原因,我希望它只为某个组件加载。
我正在尝试让 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) 我有一个用 VS 代码编写的基本项目,而且任务非常简单。我想以正确的方式在我的项目中包含一个旧的 javascript 文件,以便在浏览器中加载它。
该文件应位于 src\assets\scripts\oldLegacyScript.js
我尝试了这个技巧:如何将外部 JS 脚本添加到 VueJS 组件,它会<source>在运行时在文档中注入一个标签。这仅适用于我将 .js 文件放在生成的公共文件夹中编译文件所在的位置。如果文件不在公共文件夹中,浏览器会尝试下载我无法理解的 index.html 文件:
如果我遵循此解决方案:导入 javascript 文件以在 vue 组件中使用,我会在导入语句中遇到语法错误:

那么我该如何克服在我的 Vue 项目中导入一个简单的 javascript 文件的简单任务呢?
当我尝试仅在我需要的模板中包含条带依赖项时(在 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)
即使未呈现该组件,它似乎也会被评估。我能以某种方式解决这个问题吗?
vue.js ×6
javascript ×4
vuejs2 ×4
ajax ×1
html ×1
jwplayer ×1
mime-types ×1
this ×1
twitter ×1
webpack ×1