簡體   English   中英

如何檢測瀏覽器是否支持blink標簽?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM