我有一个javascript文件,我在其中声明了一个变量命名ID,并且在某些方法之后它会生成一个字符串,就像youtube的每个视频都有自己的id。现在我想将它传递给另一个我想要执行它的java脚本文件。
a.setAttribute('href', 'https://www.youtube.com/watch?v=' + id);
这是参数命名id,现在我想将它传递给另一个JS文件,即:
function onYouTubeIframeAPIReady()
{
player = new YT.Player('player',
{
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
现在我想用第一个javascript文件参数命名id替换'M7lc1UVf-VE'的视频ID。 我怎么能这样做?
答案 0 :(得分:0)
您可以创建一个全局变量(虽然它并不总是安全的)并将其保存在那里。然后它可以从任何其他js文件访问。 另一种方法是将其存储到本地存储并从那里获取。
创建全局变量是不安全的,因为在一个工作多个开发人员的项目中,有可能在代码的不同点创建或更改相同的变量。
要创建全局变量,您可以在代码的任何函数之外(以及var str = 'foo';
之后)键入$('document').ready()
。
通过键入localStorage.setItem("str", "foo");
之类的内容来保存到本地存储空间
并获得价值
`localStorage.getItem(" STR&#34);
答案 1 :(得分:0)
全局变量在窗口对象上定义,因此可以在不同的文件中使用。例如:
file1.js:
var str =" foo"
file2.js:
的console.log(STR)
应该可以正常工作:
<script src="file1.js"></script>
<script src="file2.js"></script>
但是,这并不是最好的方法。最好使用像Gulp或Grunt这样的东西来获取项目中的所有JS文件并将它们连接起来,然后将它们作为单个文件提供。更好的方法是使用Webpack和Babel,然后你也可以使用新的ES6 import
和export
语句(尽管如此,webpack可以是一个真正的熊来配置)。