Javascript插入的元素在Firefox中出现/更新&Chrome,但不是ie8
Javascript inserted elements appear/update in Firefox & Chrome, but not Internet Explorer 8
如果你能帮我解释一下,我真的很感激。
我正在构建一个面向对象的拖放JavaScript界面,但是我甚至无法在IE8的屏幕上进行基本的修改。它在FF和Chrome中完美地工作。检查:
http://gfe.ca/JAShowcaseBuilder/test2.html您可能会注意到这是一个真正的面向对象设计,这意味着多个文件串联工作,所以我不能在这里只发布一小段代码。我认为 JAShowcaseBuilderDraggableComponentClass.js文件的第164行是一个很好的起点。I 可以验证代码是否执行并且不会过早终止。为了兼容IE8,我必须做什么修改?IE8 根本不会产生任何错误,即使勾选了"Tools -> Internet Options -> Advanced -> Browsing -> Display a notification about every script error
"。该死的IE8调试器甚至不会在脚本运行时显示DOM的动态变化(如Chrome和Firefox)。
更新:不幸的是,我已经决定,我不能没有元素的半透明。我已经确定静态页面元素可以通过设置以下两个样式属性来使其半透明:
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50)
filter: alpha(opacity=50)
这已经成功地在HTML中定义了一个新的绿色小div。不幸的是,下面的代码不能在javascript中设置时做同样的事情:
this.dragHelperDivElementReference.css("filter", "alpha(opacity="+String(this.dragHelperDivOpacityNumber)+")");
this.dragHelperDivElementReference.css("-ms-filter", "progid:DXImageTransform.Microsoft.Alpha(opacity="+String(this.dragHelperDivOpacityNumber)+")");
对于初学者来说,在绿框的情况下(它可以工作),IE8调试器中呈现的DOM模型根本不显示"-ms-filter
"属性。红框的DOM模型(不起作用)错误地显示属性为"msfilter
"(没有破折号)。什么好主意吗?
更新# 2:想通了。透明度不能应用于父Div元素,它本身没有宽度或高度。它必须应用于子元素。不用说,总的来说我讨厌IE8和微软。特别感谢scessor (http://stackoverflow.com/users/843985/scessor)为我指明了正确的方向。
试着在
<meta http-equiv="X-UA-Compatible" content="IE=7" />
问题是css opacity filter
。IE8需要-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
而不是filter: alpha(opacity=50);
.
=== UPDATE ===
可能以下代码在所有IE中都有效:在文件JAShowcaseBuilderClass.js
中将第101 - 110行替换为:
var sVersion = $.browser.version.substr(0, 2);
if (sVersion == '5.' || sVersion == '6.' || sVersion == '7.') {
this.dragHelperDivElementReference.css(
"filter",
"alpha(opacity=" + String(this.dragHelperDivOpacityNumber) + ")"
);
} else if (sVersion == '8.') {
this.dragHelperDivElementReference.css(
"filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity=" + String(this.dragHelperDivOpacityNumber) + ")"
);
} else {
this.dragHelperDivElementReference.css(
"opacity",
String(this.dragHelperDivOpacityNumber / 100)
);
}
- 从选项页面更新chrome扩展清单权限
- .scroll()函数在上次更新后在谷歌chrome中定位闪烁
- Chrome地理定位在更新后停止工作
- 更新选项卡开关/更改上的chrome扩展图标
- Chrome DOM 未针对 jQuery 追加/淡入进行更新
- Chrome扩展程序 - 页面更新两次,然后在YouTube上删除
- 虚拟键盘在更新到 Chrome v50 后不再工作
- 使用 nameProp 的 JQuery 图像滚动更新在 Firefox 和 Chrome 中不起作用
- 如何在不按ctrl+F5的情况下更新我的Web应用程序(chrome、mozilla、IE8+)更改
- .data()无法更新Chrome检查器中显示的代码
- Chrome更新破坏了我的'devicemotion'事件处理程序
- Chrome应用程序:如何更新在Chrome应用程序主窗口中创建的辅助窗口元素的内容
- 当鼠标空闲时强制 Chrome 光标更新原版 JavaScript
- Chrome错误 asp.net 更新面板发布两次
- 为什么 Chrome 在使用书签时更新正文而不是文本区域值
- Chrome 扩展程序会更新并重写为其他相同的扩展程序
- Chrome WebRTC在浏览器更新时中断适配器.js
- Javascript代码的某些部分在最新的Chrome更新中停止工作
- 我可以使用chrome更新json响应数据吗
- 新的Chrome更新阻止Java;在调用我的applet's代码之前,我如何才能等到权限被授予