在另一个javascript文件/ Html文件中访问Javascript变量值

时间:2018-02-06 09:44:05

标签: javascript node.js

假设我有一个js文件和一个html文件:

jScript1.js

var a = 0.05 ;
var var1 = a;
function myFunc1(){
    console.log("original"+ a);
    a = a*5 ;
    console.log("processed a"+ a) ;
    var1 = a;
}

的index.html

<body>
<script src="jScript1.js">myFunc1();</script>

<script>

console.log("display"+ a);
</script>

</body>

我能够在js文件中访问var1但是当我使用它时,我得到初始化值[在这种情况下为0.05]而不是在使用js调用脚本标记中的myFunc()之后存储在var1中的处理值文件作为脚本资源

如何在myFunc()内部进行处理后获取html文件中var1的最终值?

1 个答案:

答案 0 :(得分:1)

规范的相关摘录(我特别从https://dev.w3.org/html5/spec-preview/the-script-element.html获取):

  

当用于包含动态脚本时,脚本可以嵌入内嵌,也可以使用src属性从外部文件导入。
  [...]
  (步骤15.)
  [...]
  如果元素具有src属性
  必须将该元素添加到脚本集中,这些脚本将在准备脚本算法开始时尽快执行脚本元素的Document。 [...]

     

,否则
  即使其他脚本已在执行,用户代理也必须立即执行脚本块。

我不确定它是如何被忽视的,但是myFunc1();调用根本没有被执行,并且它的日志根本不会出现。
如果你试试

<body>
  <script src="jScript1.js"></script>

  <script>
    console.log("display1 " + a);
    myFunc1();
    console.log("display2 " + a);
  </script>
</body>
相反,这将起作用。

(虽然符号&#39;动态脚本&#39;可能看起来有点令人困惑,但另一种选择是&#39;数据块&#39;)