Nếu bạn muốn để phát hiện trình duyệt mà bạn đang làm việc với, IE có một tính năng đặc biệt, gọi là có điều kiện biên soạn - http://www.javascriptkit.com/javatutors/conditionalcompile.shtml
Để có được phiên bản, bạn muốn sử dụng @_jscript_version
. Vì vậy, trong Javascript, tôi muốn sử dụng:
<script type="text/javascript">
var isIE10 = false;
/*@cc_on
if (/^10/.test(@_jscript_version)) {
isIE10 = true;
}
@*/
console.log(isIE10);
</script>
Tôi không có IE10, nhưng khi thử nghiệm với IE9, có vẻ như nó hoạt động. Nếu tôi thay đổi chế độ trình duyệt thành 7 hoặc 8, @_jscript_version
có phiên bản trình duyệt JScript thực (nó vẫn giữ nguyên là 9
trong trường hợp của tôi).
Để xem danh sách các phiên bản JScript, bạn có thể xem chúng tại đây - http://en.wikipedia.org/wiki/JScript#Versions. Nó không liệt kê IE10, nhưng tôi cho rằng đó là 10. Trước IE9, họ sử dụng các con số không phù hợp với phiên bản trình duyệt, nhưng có thể đi đúng hướng từ 9. Bạn sẽ phải xem những gì @_jscript_version
là mặc định cho 10 , nhưng tôi cho rằng nó bắt đầu bằng "10" và có một phiên bản nhỏ có thể.
UPDATE:
Để tránh việc rút gọn các ý kiến, bạn có thể sử dụng một cái gì đó như:
var IE = (function() {
"use strict";
var ret, isTheBrowser,
actualVersion,
jscriptMap, jscriptVersion;
isTheBrowser = false;
jscriptMap = {
"5.5": "5.5",
"5.6": "6",
"5.7": "7",
"5.8": "8",
"9": "9",
"10": "10"
};
jscriptVersion = new Function("/*@cc_on return @_jscript_version; @*/")();
if (jscriptVersion !== undefined) {
isTheBrowser = true;
actualVersion = jscriptMap[jscriptVersion];
}
ret = {
isTheBrowser: isTheBrowser,
actualVersion: actualVersion
};
return ret;
}());
Và truy cập vào các tính chất như IE.isTheBrowser
và IE.actualVersion
(được dịch từ các giá trị nội tại của Phiên bản JScript).
Lỗi "trình duyệt" chính xác mà bạn đang cố gắng giảm thiểu là gì? – Ian
Tôi không chắc chắn nếu thay đổi chế độ trình duyệt sẽ thay đổi biến nội bộ, nhưng bạn có thể sử dụng trình biên dịch có điều kiện và kiểm tra '@ _jscript_version' bắt đầu bằng" 10 "(phiên bản chính). – Ian
Trong một số trường hợp, các đoạn flash không bao gồm toàn bộ vùng chứa, chúng nhỏ hơn 1px. Bạn có thể xây dựng giải pháp của bạn, nó không có mùi là một giải pháp js. – gztomas