【问题标题】:Chaning root of url load to javascript file?将 url 加载的根更改为 javascript 文件?
【发布时间】:2013-04-19 23:43:48
【问题描述】:

因此,通常在将脚本或图像加载到 .html 文件中时,它会使用其当前位置作为 url 调用函数的根。现在当像这样加载外部 Javascript 文件时:

<script type="text/javascript" src="external_java.js"></script>

从上面的 javascript 文件调用的任何内容都将使用 .html 在服务器上的位置,而不是 .js 文件的位置。有什么办法可以改变吗?

这样当我调用 XML 文件时,它会使用 .js 位置作为调用的根?

$.ajax({
    type: "GET",
    url: ../template/file.xml,
    dataType: "xml",
    success: function(xml) {
        /*do something here*/
           }
       });

【问题讨论】:

    标签: javascript ajax url loading document-root


    【解决方案1】:

    您可以通过查看document.scripts 来查找脚本文件的绝对源代码:

    因此,如果您知道在页面上加载的第一个脚本是 src="external_java.js",那么检查 document.scripts[0].src 将为您提供该文件的绝对路径。

    从那里我只需将文件名替换为 got src 中的任何内容,您就有了一个绝对根路径...例如:

    var root = document.scripts[0].src.replace("external_java.js", "");
    

    您可以从那里将其附加/附加到您尝试调用的路径。

    【讨论】:

    • 那么当我想调用新的 url 时,我会合并根目录吗? url: root+'template/file.xml',
    • 是的,你可以使用 $.ajax({ url: root + "/file.xml" }) 而不是 $.ajax({ url: "../template/file.xml" }) - 例如,如果文件在你的 js 文件夹中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2013-04-22
    • 2018-04-04
    • 2018-09-27
    • 2017-12-02
    • 1970-01-01
    相关资源
    最近更新 更多