Heim >Web-Frontend >js-Tutorial >Wissensaustausch im Web-Frontend
für den Ausdruck in den Klammern der if-Anweisung bezieht, ruft ECMAScript automatisch Boolean() Transformation Die Funktion wandelt das Ergebnis dieses Ausdrucks in einen booleschen Wert um. Wenn der Wert wahr ist, wird die folgende Anweisung ausgeführt, andernfalls wird sie nicht ausgeführt.
2. Argumente im Zusammenhang Verwenden Sie das Längenattribut des Argumentobjekts, um intelligent zu bestimmen, wie viele Parameter vorhanden sind, und wenden Sie die Parameter dann sinnvoll an. Zum Beispiel möchten Sie eine Additionsoperation implementieren, um alle übergebenen Zahlen zu akkumulieren, aber die Anzahl der Zahlen ist ungewiss.function box() {var sum = 0;if (arguments.length == 0) return sum; //如果没有参数,退出for(var i = 0;i < arguments.length; i++) { //如果有,就累加sum = sum + arguments[i]; }return sum; //返回累加结果 } alert(box(5,9,12));
function box(num) {if (num <= 1) {return 1; } else {return num * arguments.callee(num-1);//使用 callee 来执行自身 } }
empfängt direkt das Ereignisobjekt, das ist W3C Dieser Ansatz wird vom IE nicht unterstützt. Der IE selbst definiert ein Ereignisobjekt, das direkt von window.event abgerufen werden kann.
input.onclick = function (evt) {var e = evt || window.event; //实现跨浏览器兼容获取 event 对象 alert(e); };
target in W3C und srcElement im IE repräsentieren beide The Ziel der Veranstaltung.
function getTarget(evt) {var e = evt || window.event;return e.target || e.srcElement; //兼容得到事件目标 DOM 对象} document.onclick = function (evt) {var target = getTarget(evt); alert(target); };
Blasenbildung verhindern Dabei W3C und IE verwenden unterschiedliche Methoden, daher müssen wir sie kompatibel machen.
function stopPro(evt) {var e = evt || window.event; window.event ? e.cancelBubble = true : e.stopPropagation(); }
function preDef(evt) {var e = evt || window.event;if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } }
Wenn wir mit der rechten Maustaste auf die Webseite klicken, wird automatisch das mit den Fenstern gelieferte Menü angezeigt. Dann können wir das Kontextmenü-Ereignis verwenden, um das von uns angegebene Menü zu ändern, jedoch nur, wenn das Standardverhalten des Rechtsklicks aufgehoben wird.
function addEvent(obj, type, fn) { //添加事件兼容if (obj.addEventListener) { obj.addEventListener(type, fn); } else if (obj.attachEvent) { obj.attachEvent('on' + type, fn); } }function removeEvent(obj, type, fn) { //移除事件兼容if (obj.removeEventListener) { ob j.removeEventListener(type, fn); } else if (obj.detachEvent) { obj.detachEvent('on' + type, fn); } } addEvent(window, 'load', function () {var text = document.getElementById('text'); addEvent(text, 'contextmenu', function (evt) {var e = evt || window.event; preDef(e);var menu = document.getElementById('menu'); menu.style.left = e.clientX + 'px'; menu.style.top = e.clientY + 'px'; menu.style.visibility = 'visible'; addEvent(document, 'click', function () { document.getElementById('myMenu').style.visibility = 'hidden'; }); }); });
BackCompat und CSS1Compat.
BackCompat: Der Standardkompatibilitätsmodus ist deaktiviert. Die Breite des Browser-Client-Bereichs beträgt document.body.clientWidth;CSS1Compat: Der Standardkompatibilitätsmodus ist aktiviert. Die Breite des Browser-Clientbereichs beträgt document.documentElement.clientWidth. Zum Beispiel:function getViewport(){ if (document.compatMode == "BackCompat"){ return { width: document.body.clientWidth, height: document.body.clientHeight } } else { return { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight } } }
function getStyle(element, attr) {if (typeof window.getComputedStyle != 'undefined') {//W3Creturn window.getComputedStyle(element, null)[attr]; } else if (typeof element.currentStyle != 'undeinfed') {//IEreturn element.currentStyle[attr]; } }
Standardbrowser unterstützen insertRule und niedrigere Versionen von IE unterstützen addRule.
//跨浏览器获取视口大小function getInner() {if (typeof window.innerWidth != 'undefined') { //IE8及以下undefinedreturn { width : window.innerWidth, height : window.innerHeight } } else {return { width : document.documentElement.clientWidth, height : document.documentElement.clientHeight } } }
Das obige ist der detaillierte Inhalt vonWissensaustausch im Web-Frontend. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!