Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何动态更改href属性_Javascript_Jquery_Html_Css_Offline Browsing - Fatal编程技术网

Javascript 如何动态更改href属性

Javascript 如何动态更改href属性,javascript,jquery,html,css,offline-browsing,Javascript,Jquery,Html,Css,Offline Browsing,我正在尝试使用html、css和一点jquery\javascript使一个小网站可以在线和离线浏览。 因此,我使用了所有的相对路径,一切都很好,除非我在所有页面中加载一个带有一点智能jquery include的自定义菜单 但是,由于my menu.html加载在树结构的不同子目录中的不同页面中,我想知道写下菜单中不同声音的href链接的最聪明的方法是什么。 最初,我开始使用menu.html中的所有绝对路径,但当然,它只适用于在线或离线,这取决于我在绝对路径中使用的根域(或)file:///

我正在尝试使用html、css和一点jquery\javascript使一个小网站可以在线和离线浏览。 因此,我使用了所有的相对路径,一切都很好,除非我在所有页面中加载一个带有一点智能jquery include的自定义菜单

但是,由于my menu.html加载在树结构的不同子目录中的不同页面中,我想知道写下菜单中不同声音的href链接的最聪明的方法是什么。

最初,我开始使用menu.html中的所有绝对路径,但当然,它只适用于在线离线,这取决于我在绝对路径中使用的根域(或)file:///D:myfolder/etc)


当然,在链接开头使用/也只能在网上使用,因为在本地,/代表网站文件夹所在的驱动器号,并且只有当网站文件夹保存在最高路径(如D:/myWenbsite)时,它才会起作用。我想做一些更具适应性的东西,而不考虑本地路径

我认为最好的方法是从根目录使用相对URL。例如,在menu.html文件中,当您引用jquery时,可以执行以下操作:

/javascript/jquery.min.js

添加开头“/”使路径始终从域的根开始,无论html在目录中的什么位置

如果您使用:

javascript/jquery.min.js

这意味着在menu.html文件所在的任何目录中,都需要存在一个javascript文件夹,这通常是不需要的。

在一个小脚本中使用
命令对其进行更改,解决了我的问题

以下是一个例子:

<head>
<!-- Here a direct path is need to firstly load jquery -->
    <script type = "text/javascript" src = "../include/js/jquery-1.10.2.min.js"></script>
    <base id="host" href="" />
    <script>
        /* Where am I? */
        here = window.location.href;
        hereIndex = here.indexOf('temp-test');

        /* make substring from root till temp-test/ */
        newPathname = here.substring(0, hereIndex+10); //+10 to consdier also temp-test/

        $("#host").attr("href", newPathname);
    </script>
</head>

/*我在哪里*/
here=window.location.href;
hereIndex=here.indexOf('temp-test');
/*从根目录生成子字符串,直到温度测试/*/
newPathname=here.substring(0,hereIndex+10)//+10至consdier温度测试/
$(“#主机”).attr(“href”,新路径名);
我不知道是否有更好的方法

无论如何,即使页面在控制台日志中正确呈现,我仍然会在我拥有的每个相对路径上获得错误file:///D:/temp-test/core/image/temp1.jpg net::ERR_FILE_未找到,但例如,此图像已正确加载。那么这上面的标签是什么?这有点让人认不出来,但它很管用


我还需要进一步调查。

是的,你说的很有效,但只有当网站文件夹直接放在root like D:/myWebsite之后,如何管理文件夹保存在本地硬盘中其他子目录中的情况?我真的很感激你的帮助