如何将字符串从一个.js文件传递到另一个.js文件

时间:2016-07-11 16:33:27

标签: javascript youtube

我有一个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。 我怎么能这样做?

2 个答案:

答案 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)

只要您在html中按照正确的顺序拉入脚本,

应该可以正常工作:

<script src="file1.js"></script>
<script src="file2.js"></script>

但是,这并不是最好的方法。最好使用像Gulp或Grunt这样的东西来获取项目中的所有JS文件并将它们连接起来,然后将它们作为单个文件提供。更好的方法是使用Webpack和Babel,然后你也可以使用新的ES6 importexport语句(尽管如此,webpack可以是一个真正的熊来配置)。