的JavaScript动态URL内容
问题描述:
我有一个HTML链接引用类似:的JavaScript动态URL内容
click here<a href="http://www.example.com/usr/page.aspx?pgid=1">www.example.com</a>
现在我想添加JavaScript代码,使www.example.com网址是动态的。所以它会始终检索作为
<a href="[DYNAMIC URL]/usr/page.aspx?pgid=1">www.example.com</a>
任何人都可以请指教?TQ
答
使用JavaScript获得域名,并添加它来创建你需要的链接。
var domain = document.domain;
var link = '<a href=\"'+domain+'/usr/page.aspx?pgid=1\">www.example.com</a>';
link // here you get a anchor tag html.
从可能子域集sub1.example.com sub2.example.com sub3.example.com中获取域名example.com。你可以尝试下面的代码。
var parts = location.hostname.split('.');
var subDomain = parts.shift();
var upperLevelDomain = parts.join('.');
To get only the second-level-domain, you might use
var secondLevelDomain = parts.slice(-2).join('.');
答
的href
属性可以是相对路径:
<a href="/path/to/page">Blah</a>
链路会抓住当前协议,主机和端口和追加下一无论发生什么。
示例场景:让我们假装当前网址为http://yoursite.com/pages/links.html
上面的示例锚会在点击http://yoursite.com/path/to/page
时导航。
注:如果省略了斜线的相对路径
<a href="path/to/page">Blah</a>
目前完整路径将被使用。
示例场景:让我们pretende当前的URL是http://yoursite.com/pages/links.html
再没有领先斜线当点击到http://yoursite.com/pages/path/to/page
将导航锚:相对在相对于当前页
答
这是你在找什么? Check JSFiddle Demo
HTML
<a class="dyna" href="[DYN]/usr/page.aspx?pgid=1">www.example.com</a><br/>
<a class="dyna" href="[DYN]/usr/page.aspx?pgid=1">www.site.com</a><br/>
<a class="dyna" href="[DYN]/usr/page.aspx?pgid=1">www.bla.com</a><br/>
JS
var l = document.getElementsByClassName("dyna").length;
for (var i=0; l > 0; l--){
var inner = document.getElementsByClassName("dyna")[i].innerHTML,
x = document.getElementsByClassName("dyna")[i].getAttribute('href'),
y = x.replace('[DYN]','http://'+inner);
document.getElementsByClassName("dyna")[i].setAttribute('href',y);
i++
}
注:我用一个类来检索锚,但你可以看看标记名,如果你喜欢...
不要你有后端?你的条件是什么动态的手段? – 2014-12-05 09:22:53
那是你想要的吗?'www.example.com'?将由浏览器使用当前主机名,协议,端口进行解释。 – dfsq 2014-12-05 09:28:12
@dfsq是的,我想让脚本从用户访问的URL中获取任何域。意思是如果用户访问site1.com。它会去“site1.com/usr/page.aspx?pgid=1” – Ren 2014-12-05 09:31:33