2017-08-01 35 views
-1

好的,所以我知道这已经被问了很多不同的方式,但我找不到任何答案的解决方案...所以我想我会提供我确切的问题:从html脚本传递参数到js文件

这是html代码:

<script type="text/javascript"> 
    var idArray = <?php json_encode($idArray) ?>; 
    var imgArray = <?php json_encode($imgArray) ?>; 
    var prArray = <?php json_encode($prArray) ?>; 
</script> 

,然后我想在我的“的script.js”文件中使用这些3个阵列。 这是想法:

var idArray = AnActualVarFromHtmlScript.idArray; 
var imgArray = AnActualVarFromHtmlScript.imgArray; 
var prArray = AnActualVarFromHtmlScript.prArray; 

感谢任何人的帮助。

+1

你不需要“重新声明”你的'变量'。你可以直接使用它。当你像HTML一样声明它时,它会隐式地在'window'变量中声明。你应该知道的唯一事情是在包含你的js文件之前在html部分声明你的变量。 –

+0

通过在脚本中使用'var idArray',可以隐藏全局变量'idArray'。只是不要那样做...!? – deceze

+0

@deceze我很抱歉,但我不明白你的评论?不做什么? xD –

回答

2

在您的html中定义的脚本标记之间的变量将在window -scope上注册。因此,您可以使用window.idArray而不是AnActualVarFromHtmlScript.idArray访问这些变量。

+0

干杯:)帮助我。 –

0

基本上,为了使这些值真的存在,你的PHP应该“回声”他们,但我会混合使用PHP和HTML而不是PHP和JS。

这应该会更好。 您可以使用“数据”属性(jQuery的,举例来说,为您带来“数据”功能,这样做)你需要的值存储到HTML元素:

<ul class="img-list" data-images="[1,2,3,4,5]"> 
 
</ul>

然后你可以检索这样说:

var el = document.querySelector('.img-list'); 
 
console.log(el.getAttribute('data-images'));

您可以实现它的另一种方式(因为您是JSON编码您的PHP输出),是处理AJAX请求并让您的JS使用响应。

希望它有用!

+0

坦克为您的答案:)也许会尝试AJAX更复杂的东西tho .. –