我正在建立一个有3个文件的网站。包含所有html结构和脚本的Php文档,对问题不感兴趣的css文档以及javascript文档。
我正在尝试通过.innerHTML语句输入javascript变量的html内容。为此,我需要(当然)编写HTML内容,因此我在javascript文件中执行代码。像这样:
document.getElementById("exp").innerHTML = "<div class=\"cell\">\
<div class=\"project_cell\"><img src=\"img.png\"></div>\
<div class=\"project_cell\">text</div>\
</div>\";
这很有效。但是,代码显然不仅仅是这个。这是一个复杂的HTML结构,我不希望在javascript文件中看到。因此,我想将HTML内容放在这个变量中,使用PHP将文件放在文本文件中,并在innerHTML语句而不是所有代码上创建该变量。 我的PHP文件是这样的。
<html>
<head>
<title>sample</title>
<?php
$filename = "thisishtml.txt";
$doc = file_get_contents($filename);
?>
<script src="javascriptfile.js" type="text/javascript"></script>
</head>
<body>
...call javascript function...
对我来说似乎没问题,但如果我愿意的话:
document.getElementById("exp").innerHTML = "<?php echo $doc ?>"
它不起作用。我尝试过简单的文本,我尝试过一个新项目,它适用于一个新项目,但不适用于这个项目。我究竟做错了什么?我看了很多问题和教程并没有帮助,这就是我在这里寻求帮助的原因。
非常感谢你的时间。我希望我们能解决这个问题。
答案 0 :(得分:1)
您可能需要为JS输出转义$ doc的内容。
document.getElementById("exp").innerHTML = <?php echo json_encode($doc) ?>;
答案 1 :(得分:1)
如果您的javascript代码在javascript文件中,PHP不会处理它,因此您无法在那里执行PHP代码。
因此,您可以将javascript代码直接放入PHP页面
<script type="text/javascript">
function someFunction()
{
document.getElementById('exp').innerHTML = "<?php echo $doc ?>";
}
</script>
或者您可以执行以下操作:
<script type="text/javascript">
var doc = "<?php echo $doc ?>";
</script>
然后在javascript文件中执行:
function someFunction()
{
document.getElementById('exp').innerHTML = doc;
}