Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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:如何获取页面中链接的URL?_Javascript_Url_Iframe - Fatal编程技术网

JAVASCRIPT:如何获取页面中链接的URL?

JAVASCRIPT:如何获取页面中链接的URL?,javascript,url,iframe,Javascript,Url,Iframe,如何获取页面中链接的URL 如何获取iframe的当前src 如果链接的URL与iframe中的src相同,我想为我的页面中的链接添加一个特殊的背景色 也就是说,当您单击链接时,它以iframe为目标(当然更改其src)。我想改变链接的背景色。我还希望当我点击下一个指向iframe的链接时,它会变回原来的状态 我想我需要javascript来完成这项工作。但是我是一个noob,所以我不知道如何评估链接的URL,这样我就可以根据iFrame的源代码测试它,并用“if”语句更改链接的背景 我想我可以

如何获取页面中链接的URL

如何获取iframe的当前src

如果链接的URL与iframe中的src相同,我想为我的页面中的链接添加一个特殊的背景色

也就是说,当您单击链接时,它以iframe为目标(当然更改其src)。我想改变链接的背景色。我还希望当我点击下一个指向iframe的链接时,它会变回原来的状态

我想我需要javascript来完成这项工作。但是我是一个noob,所以我不知道如何评估链接的URL,这样我就可以根据iFrame的源代码测试它,并用“if”语句更改链接的背景

我想我可以使用onClick事件来更改背景色(并还原所有相邻链接的背景色),而不必阅读iframe src,但这是最优雅的方式吗?(总共大约有10个链接!)

下面是我编写的一些代码,只是想看看我是否可以使用javascript读取链接中的url,但它对我来说不起作用

<script type="text/javascript"> 
var myLink = document.getElementById("myLink");
var myURL = myLink.URL; 
alert(myURL);
</script>

var myLink=document.getElementById(“myLink”);
var myURL=myLink.URL;
警报(myURL);
警报只是没有弹出

谢谢你的帮助。谢谢。

请使用以下选项:

var myLink = document.getElementById("myLink");
var myURL = myLink.href; 
alert(myURL);

HREF而不是URL。

获取iframe的src

<iframe id="myIframe" src="http://www.example.com"></iframe>

var iframe = document.getElementById('myIframe');
var iframeSrc = iframe.src;

var iframe=document.getElementById('myIframe');
var iframeSrc=iframe.src;
获取“myLink”元素的属性:

var myLink = document.getElementById("myLink");
// for href attribut
var AttributValue = myLink.getAttribute("href");
alert(AttributValue);

// for class attribut
var AttributValue = myLink.getAttribute("class");

....

首先,您需要正确地调试它。 无论您是否获得url,Alert()都应始终有效, 所以使用chrome,试试你的代码,然后右键单击->检查元素->控制台,看看是否有任何错误消息? 您还可以设置断点来跟踪代码, 希望这有帮助

我会这样做:

为所有链接设置一个类,如下所示:

HTML

。。。
...
然后让初始化函数“initLinks()”循环遍历这些链接,并将它们的“onclick”事件处理程序设置为处理单击的函数(“onClickLink()”)。
该功能将重置先前活动链接的背景色,并设置新链接的背景色。此外,它还将当前链接存储为下一个或上一个活动链接。此外(最重要的是),它设置iframe src。
“this”表示触发函数的元素,因此对应的“”链接

JAVASCRIPT

window.onload = initLinks; // let initLinks() be executed when page has loaded

var prevActiveLink; // previously active link

function initLinks(){ // does all the startup work for the links

var allLinks = document.getElementsByClassName('navLink'); // get all links (that have your classname)
for (var i=0, i<allLinks.length, i++){ // loop through them
allLinks[i].onclick = onClickLink; // set their onclick event to your function
}
prevActiveLink = allLinks[0]; // Set the first link to the previously active link (so that onClickLink() doesn't throw 'undefined' error at first execution)
allLinks[0].onclick(); // Select the first link at start
}

function onClickLink(){
document.getElementById('myIframe').src = this.href; // Set iframe src

prevActiveLink.backgroundColor = "white"; // set previously active link's background-color back to white
this.backgroundColor = "red"; // set new active link's background-color to your color

prevActiveLink = this; // set current active link to next executions previous active link
}
window.onload=initLinks;//在页面加载后执行initLinks()
var prevActiveLink;//先前活动链接
函数initLinks(){//执行链接的所有启动工作
var allLinks=document.getElementsByClassName('navLink');//获取所有链接(具有您的类名)

对于(var i=0,iYou可能犯了一个简单的错误:指定URL的属性名为“href”,而不是“URL”。您是否尝试过
var urlOfMyPage=document.URL;
也感谢您的回答。它帮助我找出了警报不会弹出的原因。
window.onload = initLinks; // let initLinks() be executed when page has loaded

var prevActiveLink; // previously active link

function initLinks(){ // does all the startup work for the links

var allLinks = document.getElementsByClassName('navLink'); // get all links (that have your classname)
for (var i=0, i<allLinks.length, i++){ // loop through them
allLinks[i].onclick = onClickLink; // set their onclick event to your function
}
prevActiveLink = allLinks[0]; // Set the first link to the previously active link (so that onClickLink() doesn't throw 'undefined' error at first execution)
allLinks[0].onclick(); // Select the first link at start
}

function onClickLink(){
document.getElementById('myIframe').src = this.href; // Set iframe src

prevActiveLink.backgroundColor = "white"; // set previously active link's background-color back to white
this.backgroundColor = "red"; // set new active link's background-color to your color

prevActiveLink = this; // set current active link to next executions previous active link
}