1

如果我的 hello.js 是这样的

function jst()
{
var i = 0 ;
i = <?php echo 35; ?>
alert( i );
}

我在 netbeans 中真正想要的是通过 php 解释器解释该 .js 文件,而无需将我的 hello.js 扩展名更改为 hello.php,或者换句话说,我不想从 js 更改我的文件扩展名。这背后的原因是因为 netbean 为具有 .js 扩展名的文件提供了特殊的支持(即编辑、文本着色等)。

这就是我在 index.php 中包含文件的方式

<script>
 <?php include 'hello.php'?>;
</script>

代码工作正常,但我想在netbeans中使用 hello.js 而不是 hello.php,如下面的代码片段所示

<script src="hello.js"></script>

我应该怎么办??专业网站如何处理这个问题?

*.js http://s13.postimg.org/vl6vo4fif/image.png

*.php http://s21.postimg.org/t7tuk42l3/after.png 更改扩展名后,所有内容都转换为纯文本

4

3 回答 3

2

你只能做最常用的方式,via parameter

你好.js

function jst(alertMe)
{
alert( alertMe );
}

索引.php

<html>
    <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <title>jsFileTest</title>
     <script type="text/javascript" src="hello.js"></script>
     <script type="text/javascript">
       var alertMe = <?php echo 35; ?> ;
     </script>
    </head>       
<body>

<button onclick="jst(alertMe)">Try it</button>
</body>
</html>        

js在你的php文件中开发你的。
如果一切都按预期工作,那么您可以将所有内容外包为单独的文件.js

但请记住:php 在服务器端进行解析和解释。所以外面的一切都php tags完全忽略了。所以 :

<script type="text/javascript" src="jsFile.js"></script>

是纯html,将被忽略。服务器端php对这些文件的存在一无所知.js,它不会加载和解析它。但如果您php也想解释这个文件,这是必需的。

如果你想将它包含在一个php文件中,你可以这样做

放在<script type="text/javascript">开头。代码完成再次开始。

js文件.php

在此处输入图像描述

index2.php

<html>
    <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <title>jsFileTest</title>
     <?php
       include_once 'jsFile.php';
     ?>   
    </head>       
<body>
<?php
 echo "myID = ".$myId."<br>";
?>   
<button onclick="myFunction()">Try it</button>
</body>
</html>        

跑步 :

在此处输入图像描述

但现在我们来到了重要的部分。

查看 html 输出源:

<html>
    <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <title>jsFileTest</title>

<script type="text/javascript">
function myFunction()
{
 alert("Hi from jsFile.php");
}
</script>

    </head>       
<body>
myID = idontknow<br>   
<button onclick="myFunction()">Try it</button>
</body>
</html>        

如您所见,javascript( function myFuntion()) 直接插入到 html 输出中。这正是不会发生的事情

<title>jsFileTest</title>
<script type="text/javascript" src="jsFile.js"></script>


你不能使用src="jsFile.php"

<script type="text/javascript" src="jsFile.php"></script>

解析完成后,内容被发送到客户端。从这一刻起,甚至尝试在 javascript 中解析嵌入的 php 代码也没有用。(服务器不再参与,已经完成了它的工作)

IE 检测到错误(状态行)。当你双击这个

在此处输入图像描述

弹出错误窗口

在此处输入图像描述

浏览器需要有效的 javascript 代码,而这

$myId = "idontknow";

不是有效的 JS 代码。

于 2013-09-05T03:49:35.267 回答
1

您只需要启用 PHP 即可读取 JS 文件。这样做:

打开你的 httpd.conf(Apache 配置文件)并找到这一行:

AddHandler application/x-httpd-php .php

并添加扩展,将此行修改为:

AddHandler application/x-httpd-php .php .js

你甚至可以添加 CSS 文件。

于 2014-02-11T14:04:27.133 回答
0

把它放在 customJs.php 中

<?php ob_start(); ?>
<script type="text/javascript">
<?php ob_end_clean(); ?>
    alert('aaaa');
<?php ob_start(); ?>
</script>
<?php ob_end_clean(); ?>
于 2016-04-04T07:20:08.023 回答