我想知道如何获得HTML元素的X和Y位置,例如img和divJavaScript.
我开发了一些javascript增强页面,可以在最近的Firefox和Safari上正常运行.我错过了检查Internet Explorer,现在我发现这些页面在IE 6和7上都不起作用(到目前为止).脚本以某种方式不执行,页面显示好像javascript不存在,虽然执行了一些javascript.我使用自己的库与DOM操作,从YUI 2我使用YUI-装载机和XML-HTTP请求,并在一个页面上我用"psupload",它依赖于JQuery的.
我正在从Office XP安装Microsoft脚本编辑器,现在将进行调试.我现在也会写具体的测试.
IE的典型失败点是什么?我可以睁开眼睛的方向.
我找到了这个页面,显示了一些差异.访问:Quirksmode
您可以从您的经验中找到一些我应该首先寻找的典型事物吗?
我稍后会在这里提出更多有关具体任务的问题,但是现在我对你的经验感兴趣,为什么IE通常会在Firefox中运行正常的脚本失败
编辑:谢谢你们所有这些伟大的答案!
与此同时,我调整了整个代码,以便它也适用于Internet Explorer.我现在整合了jQuery并构建了我自己的类.这是我的基本错误,我从一开始就没有在jQuery上构建所有的东西.我现在有.
JSLint也帮助了我很多.
许多来自不同答案的单一问题都有所帮助.
我想在Javascript中获得一个对象在页面上的绝对x,y位置.我怎样才能做到这一点?
我试过obj.offsetTop和obj.offsetLeft,但这些只给相对于父元素的位置.我想我可以循环并添加父级的偏移量及其父级的偏移量,依此类推,直到我找到没有父级的对象,但似乎应该有更好的方法.谷歌搜索没有太多,甚至SO网站搜索没有找到任何东西.
另外,我不能使用jQuery.
我知道我们可以使用clientWidth和clientHeight获取宽度和高度,但是如何计算元素的左上角和左上角y?
我有一点几乎可以正常工作的Javascript.这是代码:
function toggle(curlink) {
curlink.style.backgroundColor = curlink.style.backgroundColor == "yellow" ? "transparent" : "yellow";
var maindiv = document.getElementById("grid");
var links = maindiv.getElementsByTagName("a");
var list = "";
for (var i = 0; i < links.length; ++i) {
var link = links[i];
if (link.style.backgroundColor == "yellow") {
list += ("," + parseInt(link.style.left, 10) + "-" + parseInt(link.style.top, 10));
}
}
document.theForm.theList.value = list.substring(1);
return false;
};
window.onload = function() {
var links = document.getElementById("grid").getElementsByTagName("a");
for (var i = 0; i < links.length; ++i) …Run Code Online (Sandbox Code Playgroud)