[英]how to include js file in php?
我在 php 中有一个 js 文件的问题。 如果我像这样包含它:
?> <script type="text/javascript" href="file.js"></script> <?php
该文件未包含在内,我收到一个错误,指出该函数未定义。
当我这样尝试时:
<script type="text/javascript">
document.write('<script type="text/javascript" src="datetimepicker_css.js"></script>');
</script>
document.write 函数中的第一个标签关闭<script type="text/javascript">
这样做的正确方法是什么?
谢谢,塞巴斯蒂安
PHP 与您正在做的事情完全无关。 生成的 HTML 才是最重要的。
在您的情况下,您缺少src
属性。 用
<script type="text/javascript" src="file.js"></script>
在您的示例中,您使用href
属性来告诉在哪里可以找到 JavaScript 文件。 这应该是src
属性:
?> <script type="text/javascript" src="file.js"></script> <?php
有关更多信息,请参阅w3schools 。
Pekka 有正确的答案(因此我将此答案设为社区 Wiki):使用src
而不是href
来指定文件。
关于:
当我这样尝试时:
<script type="text/javascript">\n document.write('<script type="text/javascript" src="datetimepicker_css.js"></script>');\n </脚本>document.write 函数中的第一个标签关闭
这样做的正确方法是什么?
为此,您不需要或不需要document.write
,但以防万一您确实需要将字符</script>
放在script
标签中,因为其他原因:您通过确保 HTML 解析器(它不会'不懂 JavaScript) 看不到文字</script>
。 有几种方法可以做到这一点。 一种方法是逃避/
即使您不需要:
<script type='text/javascript'>
alert("<\/script>"); // Works, HTML parser doesn't see this as a closing script tag
// ^--- note the seemingly-unnecessary backslash
</script>
或者,如果您感觉更偏执:
<script type='text/javascript'>
alert("</scr" + "ipt>"); // Works, HTML parser doesn't see this as a closing script tag
</script>
...因为在每种情况下,JavaScript 都将字符串视为</script>
但 HTML 解析器不会。
我找到了一个我喜欢的不同解决方案:
<script>
<?php require_once("/path/to/file.js");?>
</script>
也以同样的方式处理 style-tags 和 .css-files。
我从来不喜欢关闭 PHP 块以将内容输出到浏览器,我更喜欢捕获我的输出,所以如果在我的逻辑中的某个时刻我决定要更改我的输出(在输出已经发送之后)我可以只删除当前缓冲区。
但正如 Pekka 所说,您在包含 javascript 时遇到问题的主要原因是因为您使用href
来指定 js 文件的位置,而您应该使用src
。
如果您有一个包含函数的函数文件,则添加如下内容:
function js_link($src)
{
if(file_exists("my/html/root/" . $src))
{
//we know it will exists within the HTTP Context
return sprintf("<script type=\"text/javascript\" src=\"%s\"></script>",$src);
}
return "<!-- Unable to load " . $src . "-->";
}
代码中的 n 无需使用?>
关闭块,您只需使用:
echo js_link("jquery/1.6/main.js");
PHP 输出的 HTML 与普通 HTML 页面在这方面没有区别。
您绝对不必执行document.write
。 您的 JS 与您的 PHP 无关,因此第一个示例中肯定存在其他错误(例如文件路径)。
附带说明一下,在脚本中使用</script>
会遇到问题。 HTML 解析器在解析之前扫描 JS 时看到关闭脚本标记,并变得混乱。 出于这个原因,您会看到人们在做诸如'<'+'/script'
的事情。
编辑:
正如 TJ Crowder 指出的那样,实际上您需要将<script>
标记中的'href
更改为src
。 糟糕,实际上 Pekka 在他的回答中指出了这一点,所以实际上在这里添加它是完全多余的。
从页面到 file.js 的路径更有可能是错误的。 只要当您查看页面和查看源代码时您看到标签,它就可以工作,现在是时候调试您的路径是否过于相关,也许您需要在它前面加上 / 。
我试过这个,我有类似的东西
script type="text/javascript" src="createDiv.php?id=" script
并且在createDiv.php我有
document getElementbyid(imgslide).appendchild(imgslide5).innerHTML = 'php echo $helloworld; ';
我变得超级疯狂,因为在createDiv.php开头的 php 我制作了$helloWorld
php 变量的格式是从 html 页面剪切和粘贴的
但它不起作用,因为空格是任何人都会告诉任何人有关空格问题的原因,因为我真正的 php 空格仍然有效,但不是这个。
如果你真的想使用 PHP,你可以使用
include "file.php";
或者
require "file.php";
然后在 file.php 中,使用 heredoc 并将其回显。
file.php contents:
$some_js_code <<<_code
function myFunction()
{
Alert("Some JS code would go here.");
}
_code;
在 PHP 文件的顶部,使用 include 或 require 引入文件,然后在 head(或 body 部分)中将其回显
<?php
require "file.php";
?>
<html>
<head>
<?php
echo $some_js_code;
?>
</script>
</head>
<body>
</body>
</html>
不同的方式,但它的工作原理。 只是我的 $.02...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.