【问题标题】:I can't use php include in javascript function我不能在 javascript 函数中使用 php include
【发布时间】:2014-04-29 00:08:23
【问题描述】:

我尝试在 javascript 函数中这样做:

document.getElementById('menuwrap').innerHTML = '<?php include("deffiles/menudefde.html")?>';

每当我插入 php 部分时,我的整个 javascript 都会停止工作。所以其余的都不再执行了。有人帮我吗?

编辑: 这个:

document.getElementById('menuwrap').innerHTML = '<?php include("deffiles/menudefde.html")?>';

网上这个:

document.getElementById('menuwrap').innerHTML = '<html>
<body>
<div id="menu">
<ul>
<li id="menutext1"><a href="home.html">Home </a></li>
<li id="menutext2"><a href="afbeeldingen.html">Bilder</a></li>
<li id="menutext3"><a href="links.html">Links</a></li>
<li><a href="contact.html">Contact</a></li>

</ul>
</div>';

编辑:

我想要的是我可以更改菜单的按钮,这些按钮在 html 文件中说明。所以我使用 javascript 作为按钮,但文件是用 php 调用的。还有其他方法吗?

【问题讨论】:

  • 如果 JavaScript 不起作用,请查看(生成的)JavaScript 找出原因。 然后担心更改 PHP 以消除该问题。
  • 你为什么要这样做?如果您在页面加载时加载内容,为什么不将数据注入 HTML 中它应该在的位置呢?另外,看看源代码。包含的数据中可能有一个 '。
  • 检查控制台是否有错误。您很可能在包含中有语法错误。我的猜测是在 html 文件中的某个地方有一个没有转义的密切引用。这是一种非常不雅的方式来做你提议的事情
  • kba,因为我希望在按下按钮时加载内容。
  • @BalKortlevenStudios — 编辑问题,不要将代码放在无法正确格式化的注释中。

标签: javascript php include


【解决方案1】:

您的 /menudefde.html 文件中可能有一些字符在 Javascript 字符串中是非法的。很可能是换行符,您也可以使用未转义的 ',这将终止字符串。

如果您想将每个此类字符包含在这样的字符串中,则需要对其进行转义。

但是,对于您的整体问题,可能有更好的解决方案。

【讨论】:

    【解决方案2】:

    如果您的服务器正确解释了 php 代码,您的 .html 文件可能不是 JS 中的有效字符串。

    请检查它是否没有未转义的新行、没有 ' 字符等或转义它们。

    如果您看到此类错误,请检查您的控制台日志。

    您可以使用 json_encode 函数来转义这些字符。

    【讨论】:

      【解决方案3】:

      使用JS和PHP的方法很奇怪。但是,如果你想这样做:

      如果你不需要在你的 include 中执行 PHP,你可以这样:

      document.getElementById('menuwrap').innerHTML = '<?php print str_replace("'", "\\'", file_get_contents('deffiles/menudefde.html')); ?>';
      

      【讨论】:

      • 这是一种非常有限的转义形式,它不会替换 JS 字符串中不允许的每个字符。
      猜你喜欢
      • 2013-03-11
      • 2011-12-16
      • 2020-04-24
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-22
      相关资源
      最近更新 更多