Java脚本文件中的动态图像路径

时间:2017-07-23 作者:Ananda Mukherjee

我需要在javascript文件中动态显示主题文件的图像路径。我该怎么办?

address.forEach(function(address){
   var markerGeoCoder;

   markerImage = {url: window.mr_variant == undefined ? \'img/mapmarker.png\' : \'../img/mapmarker.png\', size: new google.maps.Size(50,50), scaledSize: new google.maps.Size(50,50)};
   if(/(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)/.test(address) ){
       var latlong = address.split(\',\'),
       marker = new google.maps.Marker({
           position: { lat: 1*latlong[0], lng: 1*latlong[1] },
           map: map,
           icon: markerImage,
           title: markerTitle,
           optimised: false
       });
   }
我已经试过了:

address.forEach(function(address){
    var markerGeoCoder;

    markerImage = {url: window.mr_variant == undefined ? \'<?php the_field(\'img/mapmarker.png\'); ?>\' : \'../img/mapmarker.png\', size: new google.maps.Size(50,50), scaledSize: new google.maps.Size(50,50)};
    if(/(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)/.test(address) ){
        var latlong = address.split(\',\'),
        marker = new google.maps.Marker({
            position: { lat: 1*latlong[0], lng: 1*latlong[1] },
            map: map,
            icon: markerImage,
            title: markerTitle,
            optimised: false
        });
    }
但它不起作用。

1 个回复
SO网友:Jacob Peattie

如果你在JS中,就不能使用PHP(<?php ?>), 您需要另一种方法将PHP变量导入JS。WordPress的正常使用方法是wp_localize_script().

wp_localize_script( \'wpse_274344\', \'myScriptObject\', array(
    \'markerImageUrl\' => get_theme_file_uri( \'/img/mapmarker.png\' ),
) );
在调用后添加该代码wp_enqueue_script()wp_register_script(). 代替wpse_274344 使用脚本排队时使用的名称。

这意味着WordPress将输出一个名为myScriptObject 到包含传递给的值的页面wp_localize_script().

然后在脚本文件中,您可以访问markerImageUrl 像这样:

markerImage = {
    url: window.myScriptObject.markerImageUrl
}

结束