正如标题所言。我的 index.php 文件中最初有很多 javascript,当我试图将它放入外部 js 文件并像加载其他 js 文件一样加载它时,该文件没有加载。当我在编辑器中查看 js 文件时,每次出现 php 代码时都会显示错误。我该如何解决这个问题?
我已尝试将其重命名为 php 文件,但没有成功(我到处都遇到错误)。
我之所以有 php 代码,是因为有很多“if”语句检查有关登录用户的不同内容,例如
<?php if (Auth::instance()->current_user()): ?>
.我还根据不同的事件添加和更新 mysql 表,例如点击一个按钮。如果我直接在 index.php 文件的标签中添加代码,一切正常。
当我从 js 文件中删除 php 时,外部文件可以以 .js 和 .php 形式工作(这并不奇怪)。
谢谢
最佳答案
你想要做的是拥有不含任何 php 代码的 js 文件。
然后在 php 中,创建一个 javascript 如下:
<html>
<head>
<script>
var env = {'current_user':JSON.parse(<?=json_encode(Auth::instance()->current_user())?>), 'foo':'bar'}
console.log(env); //remove this before deploying in production
</script>
</script type='text/javascript' src='yourscript.js'></script>
<!-- other scripts here -->
</head>
...
现在您可以在所有脚本中使用全局 env
变量来访问您的用户信息(查看控制台了解详情:F12 - 控制台选项卡,然后重新加载。)
在 env.current_user
中,您将拥有所有用户信息。
请注意,您可能需要对其进行过滤,因为在此示例中,任何已知用户都可以在客户端访问其信息。
关于javascript - 外部 javascript 文件中的 PHP 导致它无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23122188/