[英]How can I detect if a browser supports the blink tag?
HTML <blink>
標簽,在支持它的瀏覽器(即Mozilla Firefox和Opera)中,使其內容閃爍,類似慢速閃光燈的效果。
我正在為非標准HTML編寫一套polyfill,包括blink
標簽。 閃爍行為的實現非常簡單
(function blink(n) {
var blinks = document.getElementsByTagName("blink"),
visibility = n % 2 === 0 ? "visible" : "hidden";
for (var i = 0; i < blinks.length; i++) {
blinks[i].style.visibility = visibility;
}
setTimeout(function() {
blink(n + 1);
}, 500);
})(0);
(你可以看到這個 )
但是這並沒有檢測到瀏覽器是否已經支持blink
標簽,並且在已經支持它的瀏覽器中,會出現雙重閃爍效果。 我需要一些功能檢測來確定瀏覽器是否支持閃爍,如果沒有,那么它會回到我的Javascript polyfill上。
我不想進行瀏覽器檢測,因為該解決方案不可擴展,並且由於人們可以在Firefox首選項中禁用blink
行為,因此該解決方案無效。
有沒有辦法檢測blink
元素的支持?
我剛剛對此事進行了一些研究, 我想我可能會找到答案......
我確定你知道CSS屬性支持檢測? 好吧,有一個text-decoration: blink
CSS屬性。 因此,如果瀏覽器支持<blink>
它也必須支持CSS屬性!
這是正常的CSS屬性檢測,即檢測textDecoration
是否支持執行此操作:
if (document.createElement("detect").style.textDecoration === "") {
// textDecoration supported
}
也許你可以嘗試這樣的事情:
if (document.createElement("detect").style.textDecoration === "blink") {
// textDecoration: blink supported ?
}
或沿着這些方向......
我有4個瀏覽器,所以用4個瀏覽器進行測試。 在這4個中,只有FireFox支持閃爍標記。 <blink>
在HTML文檔中作為FF中的“Span”元素注冊,但在其他3個瀏覽器中,它被注冊為unknown
元素。
<html>
<head>
<script type="text/javascript">
function investigate() {
var blinker = document.getElementsByTagName("blink")[0];
document.getElementById("monitor").innerHTML += blinker;
}
</script>
</head>
<body onload="investigate()">
<blink>Hello, blink!</blink>
<div id="monitor"> </div>
</body>
</html>
Internet Explorer [7,8,9] 不受支持
你好,眨眼!
[賓語]
Chrome [18] 不受支持
你好,眨眼!
[對象HTMLUnknownElement]
Safari [5] 不受支持
你好,眨眼!
[對象HTMLElement]
支持 FireFox [3.6]
你好,眨眼!
[對象HTMLSpanElement]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.