在我的页面上,我有一个名为“ okno1”的框,其中包含一些文本,并且在鼠标悬停时,在返回cca 5sec文本后,出现的是图片而不是该文本。问题是,整个框“ okno1”应该是指向另一个页面的链接,该页面可以在firefox中使用。我试过像这样:

<a href=".." target="_blank">
    <okno1 id="okno1" onMouseOver="zobraz1();"> ...  </okno1>
</a>


之后,我尝试了js:

<okno1  id="okno1" onclick="nahrejodkaz('....');" onMouseOver="zobraz1();"> .... </okno1>

function nahrejodkaz(url) {
    window.open(url, "_blank");
}


两者都只能在Firefox中使用。有什么方法可以在chrome和IE中工作吗?

JS:

function zrus1() {
    document.getElementById("okno1").innerHTML ='CYKLOPRŮVODCE
    <br>Cyklistika';
}

function zobraz1(){
    var doba=3000;
    document.getElementById("okno1").innerHTML = '<img src="kolo.jpg"
    alt="Cyklistika" name="img">';
    window.setTimeout('zrus1();',doba);
}


的CSS

okno1 {
    display: inline-block;
    cursor: pointer;
    position: relative;
    float: left;
    width: 17%;
}

最佳答案

这似乎可以解决问题。我没有费心去追查为什么您的尝试失败了。差异包括
(0)附加事件处理程序,而不使用内联JS
(1)删除okno1元素的鼠标悬停处理程序5秒钟,其内容已更改。

适用于Chrome,IE11。Chrome在浏览器窗口中显示父文件夹,IE在资源管理器窗口中将其打开。



function byId(id){return document.getElementById(id);}

window.addEventListener('load', onDocLoaded, false);

function onDocLoaded(evt)
{
    var okno1 = document.registerElement('okno-1'); // okno1 is an invalid tag-name
	byId('okno1').addEventListener('mouseover', onMouseOver, false);
}

function onMouseOver(evt)
{
	this.removeEventListener('mouseover', onMouseOver);
	this.innerHTML = "<img src='kolo.jpg' alt='Cyklistika' name='img'>";

	window.setTimeout(onTimerElapsed, 5000);
}

function onTimerElapsed(evt)
{
	var tgt = byId('okno1');
	tgt.innerHTML = ' ...  ';
	tgt.addEventListener('mouseover', onMouseOver, false);
}

okno-1
{
    display: inline-block;
    cursor: pointer;
    position: relative;
    float: left;
    width: 17%;
}

<a href=".." target="_blank"><okno-1 id="okno1"> ...  </okno-1></a>

关于javascript - anchor 标记仅在Firefox中有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39486131/

10-11 13:59