从包含在许多页面中的文件进行ajax调用

时间:2012-02-16 17:18:29

标签: javascript jquery

我正在通过包含在各种页面中的文件进行简单的调用。

$.post( "wp-content/themes/biagetti_studio/inc/HandleBackground.php", {color:color} );

问题是我认为调用是相对于包含js的文件的路径(所有包含js的文件都在同一目录中),但我发现它与当前路径相关,因此,如果我在localhost/biagettistudio,则脚本会调用localhost/biagettistudio/wp-content/themes/biagetti_studio/inc/HandleBackground.php,但如果我在localhost/biagettistudio/projects,则会调用localhost/biagettistudio/projects/wp-content/themes/biagetti_studio/inc/HandleBackground.php

我知道我可以提出绝对路径

$.post( "/wp-content/themes/biagetti_studio/inc/HandleBackground.php", {color:color} );

但是如果我必须移植该站点的基本目录不是根目录,则会出现问题。我在这里明显缺少什么?

2 个答案:

答案 0 :(得分:1)

你可以使用

<script type="text/javascript">
    <?php
    echo "var theme_dir ='" . get_theme_root() . ‘/’ . get_template() ."';";
    ?>
</script>
在footer.php中

(因此它可以在每个页面上使用),如果你移植网站,你就不必担心会破坏东西。

然后您可以像这样调用脚本......

$.post( theme_dir + "/biagetti_studio/inc/HandleBackground.php", {color:color} );

答案 1 :(得分:1)

怎么样:

var path = location.pathname.match(/(.*)\/wp-content\/.*/)[1];
$.post( path + "/wp-content/themes/biagetti_studio/inc/HandleBackground.php", {color:color} );