gpt4 book ai didi

javascript - 事件在 Firefox/Chrome 中有效,但在 IE 中失败

转载 作者:行者123 更新时间:2023-11-30 10:56:36 25 4
gpt4 key购买 nike

我刚刚构建了新西兰的 SVG map ,用于优秀的 javascript 库 Raphael ,但不幸的是,我偶然发现了我只能想象的是 IE 的 javascript 解释器中的错误或语法变体。

在 Firefox 和其他浏览器中,onlick 和 onmouseover 事件工作得很好——但它们不会在 IE 中触发(在 IE 7 中测试)。不幸的是,没有 javascript 错误可以帮助我调试它,所以我只能假设 IE 以一些根本不同的方式处理这些事件。

<script type="text/javascript" charset="utf-8">
window.onload = function() {
var R = Raphael("paper", 450, 600);
var attr = {
fill: "#3f3f40",
stroke: "#666",
"stroke-width": 1,
"stroke-linejoin": "round"
};
var nz = {};
nz.northland = R.path(attr, "M 193.34222,3.7847503 C 194.65463");
// SVG data stripped for sake of brevity
var current = null;
for (var region in nz) {
nz[region].color = Raphael.getColor();
(function(rg, region) {
rg[0].style.cursor = "pointer";
rg[0].onmouseover = function() {
current && nz[current].animate({ fill: "#3f3f40", stroke: "#666" }, 500) && (document.getElementById(current).style.display = "");
rg.animate({ fill: rg.color, stroke: "#ccc" }, 500);
rg.toFront();
R.safari();
document.getElementById(region).style.display = "block";
current = region;
};
rg[0].onclick = function() {
alert("IE never gets this far.");
//window.location.href = "my-page.aspx?District=" + region;
};
rg[0].onmouseout = function() {
rg.animate({ fill: "#3f3f40", stroke: "#666" }, 500);
};
if (region == "northland") {
rg[0].onmouseover();
}
})(nz[region], region);
}
};
</script>

非常感谢:)

最佳答案

修复似乎是使用 onmousedown 事件而不是 onclick。

改变:

rg[0].onclick = function() {
alert("IE never gets this far, but Firefox is happy.");
};

rg[0].onmousedown = function() {
alert("This works in IE and Firefox.");
};

解决了这个问题。感谢大家的意见 - 最后到了那里。如果有人真的知道为什么 IE 不喜欢 onclick,我很想听听!

关于javascript - 事件在 Firefox/Chrome 中有效,但在 IE 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/695265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com