0

我正在制作一个包含 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 文件中看到。因此,我想使用 PHP 将要在此变量中的 HTML 内容放入文本文件中,并在 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 ?>"

它不起作用。我尝试了简单的文本,并尝试了一个新项目,它适用于一个新项目,但不适用于这个项目。我究竟做错了什么?我查看了很多问题和教程但没有帮助,这就是我在这里寻求帮助的原因。

非常感谢您的宝贵时间。我希望我们能解决这个问题。

4

2 回答 2

1

您可能需要为 JS 输出转义 $doc 的内容。

document.getElementById("exp").innerHTML = <?php echo json_encode($doc) ?>;
于 2013-10-17T21:39:24.180 回答
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;
}
于 2013-10-17T21:40:50.837 回答