Javascript在Wordpress index.html中处理PHP导致加载问题,而不是匹配小提琴代码

时间:2018-03-23 19:19:34

标签: javascript php jquery wordpress

我有一个wordpress网站,我使用index.php中调用的php脚本从wordpress数据库中检索数据。

我想通过php / jQuery脚本处理通过php脚本获取的数据,该脚本将格式化数据。

问题是我使用的代码在JS Fiddle(https://jsfiddle.net/ocmLe17o/6/)中起作用;它从HTML中记录正确的原始变量并成功解析它。但是,在Wordpress中,当我在functions.php文件中包含运行所述代码的.js文件并调用php脚本时,我没有得到一个未定义的输出console.logged作为svg_links_parsed变量。 (“VM691:1未捕获的SyntaxError:位于0的JSON中的意外标记u     在JSON.parse()“

我怀疑问题可能与Wordpress加载脚本的顺序有关,而且我已经尝试在php包括后排队脚本,但我遇到了同样的问题。

TL; DR:它在Fiddle中工作但不是wordpress,如果在Wordpress中首先调用头部并且脚本在头部中,我如何保证脚本在插入php代码后触发?

示例HTML:

<!DOCTYPE HTML>
<body>
<input type='hidden' id='cover_links' value='["img\/TTEST_1.svg","img\foo.svg","img\/Bar.svg","img\/Derp.svg"]'>
</body>

使用Javascript:

var raw_src = jQuery("input").val();

console.log(raw_src); //In Fiddle this logs the input string, in Wordpress it's Undefined!

var svg_links_parsed = JSON.parse(raw_src);

document.write(svg_links_parsed);

1 个答案:

答案 0 :(得分:1)

您可能希望等到页面加载后确保在将输入标记加载到dom后脚本运行。将代码粘贴在准备好的文档中:

$( document ).ready(function() {
  // do stuff after page is loaded. 
});