var DOMElement ={
extend: function(name,fn){//添加名称为name的方法fn
if(!document.all)//除了ie而外的浏览器都能够访问到HTMLElement这个类
HTMLElement.prototype[name] = fn;//eval("HTMLElement.prototype." + name + " = fn");
else{
// IE中不能访问HTMLElement这个类
// 为了达到同样的目的,必须重写下面几个函数
// document.createElement
// document.getElementById
// document.getElementsByTagName
// 这几个函数都是获得HTML元素的方法
// 修改这些方法,使得通过这些方法获得的每个元素拥有名称为name的方法fn
var _createElement = document.createElement;
document.createElement = function(tag){
var _elem = _createElement(tag);
_elem[name] = fn;//eval("_elem." + name + " = fn");也可以达到同样的目的
return _elem;
}
var _getElementById = document.getElementById;
document.getElementById = function(id){
var _elem = _getElementById(id);
_elem[name] = fn;
return _elem;
}
var _getElementsByTagName = document.getElementsByTagName;
document.getElementsByTagName = function(tag){
var _arr = _getElementsByTagName(tag);
for(var _elem=0;_elem<_arr.length;_elem++) {
_arr[_elem][name] = fn;//eval("_arr[_elem]." + name + " = fn");
}
return _arr;
}
}
return this;//可以使用连带操作
}
};
使用方法:
DOMElement.extend('show',function() {
//if ('inline' == type)
//{
//this.style.display = 'inline';
//}
//else
//{
this.style.display = 'block';
//}
});DOMElement.extend('hide',function() {
this.style.display = 'none';
});
分享到:
相关推荐
代码中首先检查当前环境是否支持`HTMLElement.prototype`,然后定义了`outerHTML`的setter和getter,实现了在Firefox中对元素及其子元素进行替换和获取的功能。 ### 二、数组访问方式的统一 在IE中,可以使用点号...
例如,上述代码在Chrome中能够正确运行,输出`descElements`的长度为5,但IE可能由于不同的解析规则导致输出为0。这是由于浏览器之间的差异,通常需要对代码进行跨浏览器的优化和测试。 此外,当在JavaScript中声明...
虽然现代浏览器倾向于使用更通用的开发者工具,如Chrome DevTools或Firefox Developer Tools,但了解IE的DOM查看器对于支持旧版本IE的项目仍然至关重要。 **压缩包子文件的文件名称列表** 这些文件名代表了可能在...
- **IE**:仅支持`innerText`属性,该属性返回或设置节点及其子节点的文本内容,不包括任何标签或格式。 - **Firefox**:支持`textContent`和`innerText`两个属性,其中`textContent`在某些场景下更加灵活。 - **...
同时,由于IE的市场份额逐渐减少,现在更多地是转向对Chrome、Firefox等现代浏览器的支持,例如使用CEFSharp库。但了解如何使用C# .NET控制IE,对于维护旧系统或特定场景的开发仍然是有价值的。
在IE中,HTMLElement是直接支持click方法的,但是在Firefox中没有这样的原生支持。通过Object.prototype.__defineGetter__和Object.prototype.__defineSetter__方法,可以为HTMLElement类动态添加innerText的getter...
在C#编程语言中,开发基于Internet Explorer(简称IE)的应用程序主要涉及到Windows Forms或WPF等桌面应用程序框架,以及Microsoft的WebBrowser控件。WebBrowser控件允许开发者在应用程序中嵌入一个网页浏览器,从而...
在IE浏览器中,HTMLElement元素拥有两个非标准的方法:clearAttributes()和mergeAttributes()。这两个方法在其他现代浏览器中并不支持,因此在编写兼容性良好的Web应用时,开发者需要注意这一点。 一、clear...
不过需要注意,由于该控件基于旧版IE,可能不支持一些现代Web技术,如HTML5的新特性。在新项目中,可能需要考虑使用更现代的解决方案,如Chromium Embedded Framework(CEF)或Microsoft的Edge WebView2控件。
获取DOM元素的属性值时,IE支持直接使用属性名来获取,而Firefox只支持通过`getAttribute()`方法获取。为了提高代码的兼容性,建议统一使用`getAttribute()`方法来获取属性值。 ```javascript // IE var value = ...
作者写了一个脚本嵌入index.html文件中,通过Object.defineProperty()方法来定义HTMLElement.prototype的dataset属性,使其能够在ie浏览器中正常使用。 此外,文章还介绍了如何配置webpack,比如在module的rules中...
然而,Firefox并不支持`window.event`,而是将事件对象作为事件处理函数的第一个参数传递。 为了在Firefox中获取事件对象,开发者通常需要像这样编写事件处理函数: ```javascript btn.onclick = handle_btn_click...
WebBrowser控件还支持执行JavaScript代码,这在与网页进行更复杂交互时非常有用。例如,调用一个JavaScript函数: ```csharp wb.Document.InvokeScript("myFunction", new object[] { "参数" }); ``` 6. **自动...
综上所述,HTMLCaptor-source项目提供了使用SharpDevelop和.NET SDK与MS-IE的COM组件交互的实例,特别是涉及到HTMLElement对象的捕获和操作,这对于理解和实践Web自动化和网页抓取技术有着重要的参考价值。
然而,自定义元素的原生API `document.registerElement` 在较旧的浏览器,尤其是IE8,是不被支持的。为了解决这个问题,开发者们开发了垫片(Shim)库,如`custom-element-shim`,来模拟这些新特性,使得这些新功能...
使用`addEvent`函数来添加事件监听器,这个函数会检查浏览器是否支持`attachEvent`(IE)或`addEventListener`(Firefox)。这样可以确保在不同浏览器中都能正确绑定事件处理函数。 5. **Firefox注册innerText写法...
然而,Firefox浏览器并不直接支持innerText,而是使用textContent属性来实现类似的功能。textContent会返回元素及其所有子元素的纯文本内容,包括换行和空白字符。这导致在Firefox中使用innerText时会遇到兼容性问题...
3、支持绝大部分浏览器(IE,firefox,safari,netscape,opera均通过测试); 4、不仅仅实现了日历,还对Date对象进行了扩展,具体的method方法说明请参考js/core/Date.js; 5、还有就是对htmlElement进行了扩展,方便...
然而,这个特性在早期的浏览器版本,尤其是IE8中并未被支持。`classList` 的主要功能包括添加、删除、切换和检查元素的类名,这在现代Web开发中是非常常见且重要的操作。由于IE8不原生支持这一特性,开发者通常需要...