sedragon自定义控件,带有onClick事件处理程序:IE中的问题
Seadragon custom control, with an onClick event handler: problems in IE
我使用seaddragon来显示一个大图像,并且我添加了一些自定义控件,这样当我单击这些控件时,我可以平移/缩放到图像中的特定点。这适用于FF, Chrome和Opera。
但是,IE有一个问题。以下是我认为相关的代码: function makeControl(labelName) {
var control = document.createElement("a");
var controlText = document.createTextNode(labelName);
control.href = "#"; // so browser shows it as link
control.className = "viewernav";
control.id = labelName;
control.appendChild(controlText);
Seadragon.Utils.addEvent(control, "click", onControlClick);
return control;
}
function onControlClick(event) {
// don't process link
Seadragon.Utils.cancelEvent(event);
if (!viewer.isOpen()) {
return;
}
console.log(this);
// problem occurs here: in FF, Chrome, Opera, this.innerHTML has the link text, which I use to retrieve from an array
// the location and zoom for each "button"
// in IE8, however, this.innerHTML does not seem to be populated.
viewer.viewport.panTo(new Seadragon.Point(navButtons[this.innerHTML].x, navButtons[this.innerHTML].y));
viewer.viewport.zoomTo(navButtons[this.innerHTML].z);
viewer.viewport.ensureVisible();
}
我添加了一个console.log(this)
,看看Firebug会告诉我关于被点击对象的信息。在Firefox中,我得到
<a id="MyButtonName" class="viewernav" href="#" style="position: relative;">
,但在IE8(使用Firebug Lite)我得到
Window debug.html
这是我用来测试所有这些的html页面的名称。
问题:当我点击在IE以及其他常见浏览器中工作的HTML元素时,我如何获得HTML元素信息?
这是IE中已知的事件处理问题。DOM事件处理程序将'this'设置为窗口而不是触发事件的对象。而不是使用'this',在onControlClick()中执行以下操作:
function onControlClick(event) {
var target = event.target || event.srcElement;
// ...
viewer.viewport.panTo(new Seadragon.Point(navButtons[target.innerHTML].x, navButtons[target.innerHTML].y));
尝试使用事件中的目标而不是这个(event.target)。seaddragon的文档非常稀疏,但是事件对象似乎是现成的。
相关文章:
- 弯曲拐角IE 7,8问题
- jQuery AJAX 上传系统 IE 问题
- 从父页面调用iframe中的javascript,IE问题
- IE 8问题(使用js)
- Nic编辑新的上传IE问题
- 自定义模式脚本 - Safari 和 IE 问题
- JavaScript for .在循环 IE 问题中
- 使用 YQL 使用 jQuery 解析 XML(IE 问题)
- 输入类型提交的 IE 问题
- 液体布局IE问题,当然(新手)
- 在菜单上滚动交换类 - IE 问题
- jQuery预加载程序ie-6/7问题
- 重新初始化内联编辑器时的IE问题
- jQuery ie问题与粘贴(内容与中断)
- javascript IE问题.仅在IE中不工作
- selenium webdriver中的IE问题
- IE 7/8问题-无法获取属性'id': object的值为空或未定义
- 通过javascript从xml文件更新对象(IE问题)
- javascript背景大小和IE问题
- IE问题:可见