일반적으로 IE 및 FireFox와 호환되기 위한 일반적인 이벤트 처리 방법은
btn.onclick=handle_btn_click;
function handler_btn_click(evt){
if(evt==null)evt=window.event;//IE
//이벤트 처리 .
}
간단한 프로그램의 경우에는 문제가 되지 않습니다.
그러나 일부 복잡한 프로그램의 경우 특정 기능이 이벤트와 전혀 직접 연결되지 않습니다.
다음은 이 문제를 해결하는 방법과 원리입니다.
JScript에서 함수 호출에는 func.caller 속성이 있습니다. 🎜>
B();
}
function B()
{
alert(B.caller)
}
B가 A 호출인 경우 B.caller는 A
var arr=[]
for(var i=0; i
alert(arr.join("-"))
}
myalert(" hello","world ",1,2,3)
은 hello-world-1-2-3을 표시합니다.
이 두 속성에 따라 첫 번째 함수의 이벤트 개체를 가져올 수 있습니다:
{
showcontent(); }
function showcontent()
{
var evt=SearchEvent()
if(evt&&evt.shiftKey)//이벤트 기반 호출이고 Shift 키를 누른 경우
창. open(global_helpurl);
else
location .href=global_helpurl;
}
function SearchEvent()
{
func=SearchEvent.caller
while(func!= null)
{
var arg0=func .arguments[0];
if(arg0)
{
if(arg0.constructor==Event) // 이벤트 객체인 경우
return arg0;
}
func= func.caller;
}
return null;
}
이 예에서는 SearchEvent를 사용하여 이벤트를 검색합니다. 여기서 'Event'는 FireFox의 event.constructor입니다.
이 예제를 실행하면
handle_click은 FireFox에 의해 호출되지만, 정의된 매개변수는 아니지만 호출되면 첫 번째 매개변수가 이벤트이므로 handler_click.arguments[0]이 이벤트입니다.
위의 지식을 바탕으로 결합할 수 있습니다! 프로토타입.__defineGetter__ FireFox에서 window.event를 구현하려면:
아래에 간단한 코드가 제공됩니다. 관심이 있으시면 추가하실 수 있습니다. (이미 수정했습니다.)
{
FixPrototypeForGecko();
alert(window.event.srcElement)
}
}
function FixPrototypeForGecko()
{
HTMLElement.prototype.__defineGetter__("runtimeStyle",element_prototype_get_runtimeStyle);
window.constructor .prototype.__defineGetter__("event",window_prototype_get_event)
Event.prototype.__defineGetter__("srcElement",event_prototype_get_srcElement); > }
function element_prototype_get_runtimeStyle()
{
//return 스타일 대신...
return this.style
}
function window_prototype_get_event()
{
return SearchEvent();
function event_prototype_get_srcElement()
{
return this.target
}
function SearchEvent()
{
//IE
if(document.all)
return window.event;
func =SearchEvent.caller
while(func!=null)
{
var arg0=func.arguments[0] ;
if(arg0)
{
//if( arg0.constructor==Event)
if(arg0.constructor==Event||arg0.constructor==MouseEvent || (typeof( arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
return arg0;
}
func=func.caller;
return null;
Javascript와 JScript도 다릅니다. 전자는 클라이언트 측 스크립트이고 후자는 서버 측 스크립트이며 VBScript와 같이 서버에서 지원됩니다.
물론 여기서 이야기하려는 것은 아닙니다. 둘의 차이는 있지만 그냥 제 현재 수준(평균 아님)을 알려드리자면...
위 코드만 드린다면 이제 막 궁합공부를 시작하는 친구들은 힘들거라고 생각합니다.
여기서 설명하겠습니다. 먼저 위 코드의 사용법을 설명하겠습니다.
먼저 __defineGetter__ 및 __defineSetter__ 두 가지 메서드에 대한 설명을 살펴보겠습니다.
1. Getter는 메서드입니다. 속성 값을 가져오는 방법이고 Setter는 속성 값을 설정하는 방법입니다. 사전 정의된 핵심 개체 또는 사용자 정의 개체에 대해 getter 및 setter 메서드를 정의하여 기존 개체에 새 속성을 추가할 수 있습니다.
2. 언제 객체와 이벤트에 새로운 속성을 추가할 수 있나요?
1. 객체가 초기화되는 시기를 정의하세요
2. 객체를 정의한 후 Object자세한 사용법은 여기(주소: http://anbutu.javaeye.com/blog/post/194276)에서 __defineGetter__ 및 __defineSetter__에 대한 설명을 참조하세요.
그래서 우리는 FixPrototypeForGecko() 함수에 속성이 추가되는 것을 보았습니다. 물론 세 개의 객체는 각각 FF 아래에 추가됩니다.
HTMLElement는 "runtimeStyle" 속성을 추가하고 속성 값은 element_prototype_get_runtimeStyle 함수에서 반환된 값입니다.
창은 "event" 속성을 추가합니다. value는 window_prototype_get_event에서 반환된 값입니다.
Event는 "srcElement" 속성을 추가하고, 기본 속성 값은 event_prototype_get_srcElement 함수에서 반환된 값입니다.
이런 방식으로 FF그래서 브라우저가 FF인지 판단한 후 FixPrototypeForGecko() 프로세스를 실행합니다. 이때 이 세 객체는 FF 아래에 새로운 속성을 갖게 됩니다
그래서 DIV 태그를 클릭하면 팝업 창에 표시됩니다. "[object HTMLDivElement]"라는 단어에 도달하면 창 개체에 이벤트 속성을 성공적으로 추가했음을 의미합니다
alert(window.event.srcElement)
}
element_prototype_get_runtimeStyle 프로세스와 event_prototype_get_srcElement 프로세스를 보면 반환된 값을 쉽게 이해할 수 있습니다.
반환 프로세스의 값은 SearchEvent() 프로세스의 결과입니다.
//IE
if(document.all)
return window.event
func=SearchEvent; 호출자;
while(func!=null)
{
var arg0=func.arguments[0]
if(arg0)
{
//if(arg0.constructor ==이벤트||arg0.constructor==MouseEvent)
if(arg0.constructor ==Event||arg0.constructor==MouseEvent || (typeof(arg0)=="object" && arg0.preventDefault && arg0. stopPropagation))
return arg0;
}
func=func.caller;
}
return null;
이 프로세스를 이해하려면 먼저 호출자와 인수라는 두 가지 방법을 이해해야 합니다(기사에 해당 설명이 있음)
여기서 생성자 속성에 대해 다시 설명하겠습니다. 반환되는 것은 해당 객체의 생성자입니다
그동안 루프, 경고(func) func.caller의 반환, 마지막 반환을 볼 수 있습니다. 이것이 마우스 클릭 이벤트입니다
추가한 것을 볼 수 있습니다. if(arg0.constructor==Event||arg0.constructor==MouseEvent) 의 조건, arg0.constructor의 현재 결과가 MouseEvent이기 때문입니다.
이것을 보고 나면 모두가 FF에서 이벤트를 작성하는 방법을 알고 있다고 믿습니다.
마지막으로 객체에 대한 이벤트 메소드를 등록하는 "addEventListener"에 대해 알아보겠습니다
코드 복사

要在UbuntuLinux中删除FirefoxSnap,可以按照以下步骤进行操作:打开终端并以管理员身份登录到Ubuntu系统。运行以下命令以卸载FirefoxSnap:sudosnapremovefirefox系统将提示你输入管理员密码。输入密码并按下Enter键以确认。等待命令执行完成。一旦完成,FirefoxSnap将被完全删除。请注意,这将删除通过Snap包管理器安装的Firefox版本。如果你通过其他方式(如APT包管理器)安装了另一个版本的Firefox,则不会受到影响。通过以上步骤

mozilla firefox可以卸载;firefox属于第三方浏览器,如果不需要,完全可以卸载。卸载方法:1、在开始菜单中,依次点击“Windwos系统”-“控制面板”;2、在“控制面板”界面中,点击“程序和功能”;3、在新界面中,找到并双击火狐浏览器图标;4、在卸载弹窗中,点击“下一步”;5、点击“卸载”即可。

近日消息,Mozilla在发布Firefox112稳定版的同时,也宣布下个主要版本Firefox113进入Beta频道,支持AV1动图、增强密码生成器和画中画特性。火狐浏览器Firefox113主要新功能/新特性如下支持AV1格式动图(AVIS)通过引入特殊字符来增强密码生成器的安全性增强画中画功能,支持后退、显示视频时间,能更轻松地启用全屏模式为Debian和Ubuntu发行版提供官方DEB安装文件更新书签导入功能,默认情况下支持导入书签的图标在支持的硬件上默认启用硬件加速AV1视频解码使用w

对于爬虫爬取需要登录的网站,验证码或扫码登录是一个很困扰的问题。Scrapy是Python中一个非常好用的爬虫框架,但是在处理验证码或扫码登录时,需要采取一些特殊的措施。作为一个常见的浏览器,MozillaFirefox提供了一种解决方案,可以帮助我们解决这个问题。Scrapy的核心模块是twisted,它只支持异步请求,但是一些网站需要使用cookie和

今日最新消息,Mozilla今天正式发布了火狐浏览器Firefox115稳定版更新,本次更新最值得关注一点是,这是支持Win7/Win8、macOS10.12、10.13和10.14的最后一个版本。下载地址:https://ftp.mozilla.org/pub/firefox/releases/115.0/Mozilla在官方更新日志中表示:微软于2023年1月结束了对Win7和Win8系统的支持,而今天发布的Firefox115版本是上述系统用户收到的最后一个版本更新。Win7和Win8用户

Canonical公司近日宣布,在即将发布的Ubuntu23.10中,FirefoxSnap已配置默认在Wayland模式下运行。注:Ubuntu目前已经默认Wayland会话,Firefox也能正常工作。不过当前FirefoxSnap实际上是以XWayland兼容模式下运行,而不是严苛的原生Wayland模式。Canonical宣布默认会在Wayland模式下运行Firefox浏览器,从而在HiDPI显示器不会出现界面模糊、缩放失真等问题,并且支持拖动、手势捏合等触控手势。如上所述,Ubunt

昨日新消息,Mozilla发布Firefox114稳定版更新的同时,也将开发的重心迁移到Firefox115版本上,并于今天推出了Beta版本。从报道中获悉,Firefox115引入了原本计划在114版本中上线的CookieBannerReduction和QuickActions按钮。用户在Firefox115版本中启用CookieBannerReduction之后,访问支持的网站,浏览器在cookiebanners上会自动拒绝cookie请求。第二项功能是地址栏上的QuickActions按钮

想要上网更流畅,那么你需要一款好用的浏览器,那么在Win10中哪个浏览器好?下面小编给大家推荐几个比较好用的浏览器给大家参考。一、谷歌浏览器这款浏览器在win10系统上使用可以说是如虎添翼,它基于其他开放原始码软件而撰写的,包括了Mozilla和webkit,大幅度的提升了稳定性、速度以及安全性,为创建出了简单有效率的界面让你使用起来毫无违和感。二、QQ浏览器QQ浏览器是一款非常好用的浏览器也是新一代的全新浏览器,因此它将会非常适合win10系统,采用的全新架构针对ie内核做了整体的全面优化,一


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
