我有一个JavaScript文件,它有一个硬编码的BASEURL变量,然后该值被文件中的其他函数使用。 我想要动态设置此url值,以便我不需要为不同的安装手动更改它。是否可以将PHP变量值插入JavaScript文件中?
答案 0 :(得分:5)
不是尝试将PHP混合到javascript文件中,而是我在HTML模板中执行的操作:
<head>
<script>
var BASEURL = "<?php echo base_url(); ?>";
</script>
<script src="/path/to/my_script1.js"></script>
<script src="/path/to/my_script2.js"></script>
</head>
设置变量并允许所有嵌入式脚本访问它。 base_url()
将替换为您使用PHP获取基本URL的任何方法。
答案 1 :(得分:1)
假设你有一个由PHP动态编写的JS文件; file1.php
<?php
header('Content-Type: application/javascript');
$var = $_GET['var1'];
echo "jsvar = ".$var.";";
?>
file1.php?var1 = 10的客户端源代码将是
jsvar=10;
答案 2 :(得分:1)
有几种方法:
通过AJAX加载baseurl,但也许这会慢,也许你需要更早。
让javascript文件通过php解析器运行。然后你可以使用内联回声。
最方便,最简单的方法是在页面的html / php输出中创建<script>var baseurl = '...';</script>
。
答案 3 :(得分:1)
您需要将文件设为php文件,而不是js文件。从那里你可以在文件中包含任何PHP标签来运行你的动态魔术。使整个事情发挥作用的关键在于标题,您需要像这样设置:
<?php
Header("content-type: application/x-javascript");
echo 'var js_var = ' . $php_var;
?>
alert (js_var);
此技术也可用于CSS文件。
答案 4 :(得分:0)
Heredoc今天为我工作:
<?php
echo <<<ANYNAME
<script LANGUAGE="JavaScript" type="text/javascript">
<!--
// code ...
var myLatlng = new google.maps.LatLng($lat, $lon);
// code cont. ...
//-->
</script>
ANYNAME;
?>
http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc