javascript - PHP逻辑到Javascript前端转化成html标签

标签 javascript php jquery json

我目前正在尝试将大量后端代码转换为前端(以减轻小型系统的负载)。

此时的代码调用 PHP 函数来返回特定信息。 (例如图像位置、字符串、样式)

我正在将此代码转换为其等效的 js,Mysql 中的内容已转换为 JSON 并存储在只读文件中,我正在使用以下代码访问该文件:

<script>
  function jsread(tag) {
    $.getJSON("/strings.json", function(result){   
      document.write(result[tag]['value']);
    });
  }
</script>

我希望该函数在调用它的地方“打印”。 document write 将值写入页面,但停止所有其他加载并仅写入值。

让我非常清楚地说明这一点:我不想想要使用任何需要在此函数之外进行额外调用或引用的内容,这将需要数月的工作,因此无法通过 ID 获取元素我已经查看了有关此主题的许多问题,但没有一个是我可以解决的。我需要一些可以应用于各种情况的东西。否则我只需要使用 PHP 读取 JSON 作为中间妥协。

最佳答案

这里的问题是,document.write() 的行为在所有浏览器中都是疯狂的,因为它直接修改 document 对象并与附事件。因此,最好避免使用此函数,因为每个浏览器对它的定义不同,并且不同的浏览器对相同的代码有不同的效果。

Is there a way to use them without a direct reference?

解决方案

明智的做法是,正如我在评论中所说,最好安全地使用其中一个 jQuery 函数,该函数创建一个 textNode 并以正确的方式插入它,而不影响其他函数:

<script>
  function jsread(tag) {
    $.getJSON("/strings.json", function(result){   
      $("body").append(result[tag]['value']);
    });
  }
</script>

如果您想做一些事情,例如使用占位符并做一些事情,那么您可以尝试提供如下内容:

$(function () {
  var data = "Dummy Data, that would probably get returned from the getJSON";
  // Inside the Success function, do this:
  $("span.placeholder-of-the-json").replaceWith(data);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#"><span class="placeholder-of-the-json">This gets replaced</span></a>

关于javascript - PHP逻辑到Javascript前端转化成html标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35198544/

相关文章:

javascript - JQUERY 添加图像属性

php - 如何在 PHP 中的 select 查询 where 语句中使用数组?

php - Typo3 8.3.1 无法访问远程资源 http ://repositories. typo3.org/mirrors.xml.gz

jquery - 在 jQuery 对话框中打开 jQuery WYSIWYG

php - 如何在 jQuery 中从 PHP 获取数组键

javascript - 当我添加更多 &lt;script&gt; 标签时会发生什么?

javascript - 如何监听 react hooks 中的 redux 状态变化?

php - 在数组中包含 HTML 标签是否可以(是否存在被黑客攻击的风险)?

javascript - 编译 ng-bind-html 后 ng-click 不工作

javascript - 获取 div 内表格中单元格的 ID(JS 和 HTML)