PHP生成的.js文件中的代码

时间:2014-02-27 09:17:36

标签: javascript php html web

我在webpage.php中有一些JavaScript代码。部分JS代码由PHP生成。我想将JS移动到另一个文件jscode.js。我如何根据webpage.php中声明的变量,以一种webpage.php动态加载JS代码的方式将PHP生成的JS代码移出webpage.php?

webpage.php的一部分如下所示:

<?PHP $height = $_POST['height'];
// more code
var height = <?PHP echo $height; ?>;

我希望它不在声明$ height的文档中。我该怎么做?

4 个答案:

答案 0 :(得分:4)

假设高度与div标签有关。让php在div上回显高度:

<div id="whatever" data-height="<?php echo $height; ?>"></div>

然后在javascript中访问它:

var height = parseInt(document.getElementById("whatever").getAttribute("data-height"), 10);

在页面末尾包含脚本标记,以确保执行JS代码时存在div(或任何一个)元素。

这是最不突兀的做法,并不依赖height作为全局变量。

答案 1 :(得分:1)

如果您的网页.php包含您的文档<head>,则可以

<script type="text/javascript">
    var height = "<?php echo $height; ?>";
</script>
<script type="text/javascript" src="jscode.js"></script>

然后,如果你之后包含了jscode.js脚本,height变量将在范围内

答案 2 :(得分:0)

只需将动态生成的值传递给.js文件中定义的函数。

//jscode.js
function doStuff(x, y){
    //stuff
}

//page.php
<scrpit>
    doStuff(<?PHP echo $x; ?>, <?PHP echo $y; ?>);
</script>

答案 3 :(得分:0)

您可以使用基本模板。

在你的js文件中放入你的源码,你需要一个php变量的地方,用一种特殊的方式来调用它,比如: [PHP:MyVar的]

然后在你的php中,你可以将所有模板变量放在一个数组中。

$templateVars = array('[php:MyVar]'=>'value', '[php:MyVar2]'=>'value2');

加载您的文件:

$js = file_get_contents("js_file.js");

并替换它的内容:

$js = str_replace(array_keys($template_vars), array_values($template_vars), $js);

最后打印出来:

echo "<script>$js</script>";