javascript - 运行 Javascript+PHP 形成另一个文件

标签 javascript php jquery

如何在current.js文件中的另一个文件中执行javascript+php?

场景如下:

另一个文件.js

function foo()
{
    var a = <?php echo "Hello world !"; ?>
}

当前.js

function show()
{
    var b = "Hi,";
    // execute javascript (with php code embeded)
    require(another-file.js)  // <-- this is not work

    alert(a + b); // I want result: "Hi, Hello World !"
}

最佳答案

您可以使用 PHP 生成分配给 JS 变量的字符串,如下所示:

var myvar = "<?php echo "Hello World"; ?>";

在您的示例中,您忘记了 PHP 标签周围的引号(在 <?php 之前和 ?> 之后),因此您可能会收到错误,因为 JS 解释器正在寻找名为 Hello 的变量。和World而不是将“Hello World”视为字符串。

现在我们知道,你不能像在其他语言中那样在 JS 中包含包含内容,人们通常所做的只是使用多个 <script>标签将多个 JS 包含到页面中。但是,如果由于某种我忽略的原因,你绝对需要将JS包含到另一个JS中,你可以做的是使用jquery的getScript() ,请参阅此处了解更多信息 https://api.jquery.com/jquery.getscript/ :

$.getScript( "another-file.js" )
    .done( function() {
        alert(a + b);
    })
    .fail( function() {
         console.log("Ooops there was a problem");
    });

编辑:正如我在其他评论中所说,您还可以发送 AJAX 查询,然后 eval() (这就是 getScript() 在幕后所做的),或者您可以使用 ES6 模块,但这超出了本问题的范围。

关于javascript - 运行 Javascript+PHP 形成另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37582245/

相关文章:

javascript - 如何在 Jasmine 中测试验证器

javascript - 如何在两个div之间画一条线?

php - 网格和列表的不同 css 样式与 WooCommerce 网格/列表切换

javascript - 使用延迟和传递变量链接多个 AJAX 调用

javascript - Sticky Edge - 获取轮播内单元格的边缘

javascript 使用带循环的 settimeout()

javascript - 复选框警报,最多选择 4 项

php - Magento:比较产品链接不起作用

php - WordPress:更改页面模板

javascript - reCAPTCHA Invisible - 重新提交表单问题