如何解决href =“”中的getBaseURLjavascript调用函数
|| 我正在通过html页面中的javascript调用基于URL的URL,我想添加基本URL来调用链接 例如。<a href=\"getBaseURL()/filepath/index.html\">Page</a>
javascript如下:
function getBaseURL() {
var url = location.href; // entire url including querystring - also: window.location.href;
var baseURL = url.substring(0,url.indexOf(\'/\',14));
if (baseURL.indexOf(\'http://localhost\') != -1) {
// Base Url for localhost
var url = location.href; // window.location.href;
var pathname = location.pathname; // window.location.pathname;
var index1 = url.indexOf(pathname);
var index2 = url.indexOf(\"/\",index1 + 1);
var baseLocalUrl = url.substr(0,index2);
return baseLocalUrl + \"/\";
}
else {
// Root Url for domain name
return baseURL + \"/\";
}
}
编辑
它只是为了从相关域中获取任何基本URL。另外,我从教程中获得了这段代码,因此,任何需要较少处理的建议都将非常感谢
第二编辑
大家好,谢谢您到目前为止的回答,但是,我希望像<a href=\"getURL()/filepath/file.html></a>
一样将函数调用到html标签。这就是问题所在,我不确定该怎么做
解决方法
function getBaseURL () {
return location.protocol + \"//\" + location.hostname +
(location.port && \":\" + location.port) + \"/\";
}
编辑:解决了Mike Samuel在非标准端口上的问题。
, 允许使用“ 4”(或不使用)的通用解决方案-进一步的改进是使用某种正则表达式将baseDocument从baseURL中删除。
function getBaseURL () {
var baseURL = \"\";
var baseDocument = \"index.html\";
if (document.getElementsByTagName(\'base\').length > 0) {
baseURL = document.getElementsByTagName(\'base\')[0].href.replace(baseDocument,\"\");
} else {
baseURL = location.protocol + \"//\" + location.hostname + (location.port && \":\" + location.port) + \"/\";
}
return baseURL;
}
, 我正在处理相同的问题,获取基本URL并没有太多(如这些答案所示),而是从元素中调用javascript函数,然后添加相对路径。使用@Christian Sanchez答案和其他我发现的信息,这是使用元素的onclick选项:
JAVASCRIPT:
<script type=\"text/javascript\">
function getBaseURL(loc) {
return location.protocol + \"//\" + location.hostname +
(location.port && \":\" + location.port) + \"/\" + loc;
}
</script>
HTML:
<a href=\"filepath/index.html\" onclick=\"getBaseURL(this.href);\">TEST LINK</a>
小提琴在这里:http://jsfiddle.net/62g2bkyh/(将鼠标悬停在链接上以查看小提琴中的URL-显示iframe的基本URL)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。