如何使用ScriptSharp将onclick事件提升到ImageElement?
我在尝试时遇到错误:
ImageElement Button = (ImageElement)Document.CreateElement("img");
Button.Src = "image.png";
Button.AddEventListener("click", delegate(ElementEvent e)
{
Script.Alert("Clicked");
}, false);
当我在Google Chrome浏览器中查看该页面时,它可以正常工作,但在IE8中则不行... 所以我猜ScriptSharp无法创建与IE一起使用的代码< 9?
答案 0 :(得分:2)
这是您使用DOM的方式的问题。 IE7到8不支持addEventListener
。您需要使用attachEvent
或包含浏览器之间差异的库(例如jQuery)。
https://developer.mozilla.org/en/DOM/element.addEventListener
答案 1 :(得分:1)
github问题也涵盖了这个问题 - https://github.com/NikhilK/scriptsharp/issues/1
简而言之,我建议使用现有的包装器(如jQuery)或自己的自定义包装器来抽象不同浏览器中的事件差异和DOM事件支持,而不是从应用程序代码中有条件地调用attachEvent。
在一般脚本#中,作为编译器,不会跨浏览器对差异进行抽象 - 框架就是这样做的。这些人要么有他们自己的抽象,要么他们已经做出框架选择,并且经常就抽象如何运作发表意见。