我的网站上有一个加载gif的画廊。在我的js文件中,我有这个代码来显示加载器:
image: $("<img src='images/loading.gif'/>"),
目前此图片未显示,因为我没有放置完整的图像路径。但我不想放完整个图像路径,而是愿意这样做:
<img src="<?php bloginfo('url');?>/images/loading.gif”>
但我无法弄清楚如何在我的js文件中使这个php工作。我该如何以最简单的方式去做?
答案 0 :(得分:1)
我更喜欢..
1)在我的标题中包含(php包含任何&lt; head&gt;数据),写一个小的 内联JS函数,它创建一个包含我需要的任何变量的全局对象(PHP)。我可以在这里使用'echo'和'json_encode'函数,因为它在php文件中的内联JS片段中。
2)您可以在JS文件中编写一个JS函数,该函数使用AJAX调用PHP文件,该文件将返回与编号1相同的JSON编码数据,然后解析它并分配到全局变量。
两者基本上都做同样的事情,除了2你使用AJAX,这将添加一个额外的请求。我更喜欢选项1,因为它与页面执行一起完成。选项2可能要求您等到DOM准备就绪,具体取决于程序的各个方面(我无法分辨)。
选项1需要内联JS,但你真的不应该对此有所了解,因为动态网站实际上可以是一个加号,因为它简洁明了。有些人对其他人有关于内联JS的看法。不要让他们对你大喊大叫。
答案 1 :(得分:0)
我不完全确定你要做什么。但是如果那个JS不工作,为什么不包括一个php文件,或者只是在头文件中写一些php,其中包含了'echo()'中的JS。即:
echo('?><img src="<?php bloginfo('url');?>/images/loading.gif" /><?php');
如果我误解你的意图,请纠正我。
答案 2 :(得分:0)
您不能将PHP代码直接放入.js文件中,但在包含javascript文件之前,您可以在PHP文件的head元素中添加一些javascript。
在这个javascript中,您可以使用PHP定义变量并为其分配数据。然后可以从javascript文件中访问这些变量。
<head>
<script type='text/javascript'>
var _g_bloginfo = "<?php echo '...'; ?>";
</script>
<script type='text/javascript' src='javascript.js'></script>
</head>
答案 3 :(得分:0)
用于将PHP数据传递给JavaScript的更清晰技术是将数据存储在data attributes中,然后您可以通过JavaScript访问这些数据。举个简单的例子:
<body data-home-url="<?php echo home_url(); ?>">
你可以在jQuery中访问它:
var home = $('body').attr('data-home-url');
仅供参考,您可以使用json_encode将PHP对象/数组转换为JSON对象,您可以通过$.parseJSON或JSON.parse阅读这些对象。 WP wp_localize_script实际上可以为您执行此操作,但请注意,在这种情况下,它会将转换后的数据公开给window。
答案 4 :(得分:0)
你可以创建一个php文件(你的js文件包含你在js文件中已经拥有的所有代码+对php变量/函数的引用),并将其包含在你的主php文件中。
<?php $example = 23; ?>
<html>
<head><title></title>
<script type="text/javascript">
<?php include('js.php'); ?>
</script>
</head>
<body></body>
</html>
var a = <?= $example ?>;
alert(a);
<html>
<head><title></title>
<script type="text/javascript">
var a = 23;
alert(a);
</script>
</head>
<body></body>
</html>