我有一个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);
答案 0 :(得分:1)
您可能希望等到页面加载后确保在将输入标记加载到dom后脚本运行。将代码粘贴在准备好的文档中:
$( document ).ready(function() {
// do stuff after page is loaded.
});