Heim  >  Artikel  >  Web-Frontend  >  JS-Skript, das mit dem Firefox-Browser kompatibel ist

JS-Skript, das mit dem Firefox-Browser kompatibel ist

黄舟
黄舟Original
2016-12-14 16:00:231342Durchsuche

Ich habe kürzlich an einem Projekt gearbeitet und bin auf das Problem der Inkompatibilität zwischen FireFox- und IE-Skripten gestoßen. Zu diesem Zweck habe ich einige kompatible Skripte aus dem Internet gesammelt, die ich ursprünglich selbst geschrieben habe Ich kopiere sie jetzt als Referenz

1. window.event-kompatibles Skript
3 . Ereigniskompatibles Schreiben hinzufügen
5. Firefox-Registrierungs-InnerText-Schreibmethode
7. Untergeordnete Steuerelemente unter der übergeordneten Steuerung
8. kompatibel mit IE- und FF-Schreibmethoden
if(document.all) return window.event;
func=getEvent.caller;
while(func !=null){

var arg0=func.arguments [0];

if(arg0){

if((arg0.constructor==Event   arg0.constructor ==MouseEvent)

  (typeof (arg0)=="object" %26amp;%26amp; arg0.preventDefault %26amp;%26amp; arg0.stopPropagation)){

return arg0;

}
return null; >}

Vor der Verwendung eines Ereignisses muss Firefox jedes Mal getEvent() verwenden, um es abzurufen, andernfalls ist es leer

2. Shield Form Submit event

Ereignis .returnValue=false;// für IE

evt.preventDefault();//für Firefox

3. Holen Sie sich die Ereignisquelle

var source=event.srcElement / /IE

var source=event.target //firefox

4. Ereigniskompatible Schreibmethode hinzufügen

function addEvent(oElement,sEvent, func){

if (oElement.attachEvent){

oElement.attachEvent(sEvent,func>}

else{

sEvent=sEvent.substring(2,sEvent.length); sEvent,func,false);

}

}

Verwendung addEvent(window,"onload",Start);

5.Firefox-Registrierung innerText-Schreibmethode

//Firefox innerText registrieren

HTMLElement.prototype.__defineGetter__("innerText",
function(){
var anyString = "";
var childS = this. childNodes;
for (var i=0; i if(childS[i].nodeType==1)
anyString += childS[i].tagName=="BR" ? 'n' : childS[i ].innerText;
else if(childS[i].nodeType==3)
anyString += childS[i].nodeValue;
return anyString;

); .prototype.__defineSetter__("innerText",

function(sText){

this.textContent=sText;

}

);


6. Länge Die Länge von Firefox muss sein mit „px“ hinzugefügt, IE spielt keine Rolle

7. Der untergeordnete Kontroll-IE unter der übergeordneten Kontrolle ist „children“, FireFox ist „childNodes“

8.XmlHttp

Im IE kann der Inhalt der Methode XmlHttp.send(content) leer sein, aber in Firefox darf er nicht leer sein. Send(" ") sollte verwendet werden, sonst tritt ein 411-Fehler auf

Weitere Informationen Verwandte Artikel, bitte beachten Sie die chinesische PHP-Website (www.php.cn)!




Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn