我正在同一主机上托管的两个站点,它们希望通过具有链接目录树的符号链接来共享一些html文件,但是在查看页面时具有独立的“品牌”,因此我认为可以使用,然后根据该数据执行“品牌定制”,其中最重要的只是指向相应站点的联系数据的简单链接。因此,我想同时更改链接和链接的文本。我认为没问题,只需在主体中使用window.location.hostname来运行函数或在脚本级放置"onload="即可。该函数将触发,没有问题,但是它没有更新我要更新的项目,因为它不断响应window.onload=的目标为null。摘录如下: function setContact() { // var ourURL = window.location.href; var DN = window.location.hostname; // if structure using DN to come up with the changes omitted // "contactLnk" is both the name of the anchor and the name // of the variable set by the if structure var targetLink = document.getElementById("contactLnk"); targetLink.setAttribute('href', contactLnk); } </script>该函数运行并且没有任何效果,并且Java脚本控制台显示:TypeError: targetLink is null我有一些类似但不同的代码可以正常工作,但是它们都是由诸如mouseover或onclick等启动的。显然,我“做错了”。洞察力赞赏这是代码:<html><head><title>Some Title</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body bgcolor="#AAD7B9" text="#000000" onload="setContact();"> <script type = "text/javascript"> function setContact() { var DN = window.location.hostname; var targetLink = document.getElementById("contactLnk"); targetLink.setAttribute('href', "http://"+DN+"/index.html"); } </script><p>Nav section deleted in whole. Has nothing to do with it anyway.</p><p><a name="contactLnk" onload="setContact();" href="not.us">Some Link Text</a></p></body></html> (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 您需要将html元素中的名称更改为id,以便getElementById起作用。<a id="contactLnk" onload="setContact();" href="not.us">Some Link Text</a>有了它,就没有ID为“ contactLnk”的元素。 (adsbygoogle = window.adsbygoogle || []).push({});
09-25 17:21