javascript - w3school - noscript用法




我們不應該使用<noscript>元素嗎? (8)

我在這裡發現了一些好消息:

  • noscript元素僅檢測瀏覽器是否啟用了JavaScript。 如果在防火牆中而不是在瀏覽器中禁用JavaScript,則JavaScript將不會運行,並且不會顯示noscript元素的內容。

  • 許多腳本依賴於所支持語言的特定功能或特性,以便它們能夠運行(例如document.getElementById)。 如果不支持所需的功能,則JavaScript無法運行,但由於支持JavaScript本身,因此不會顯示noscript內容。

  • 使用noscript元素最有用的地方是在頁面的頭部,它可以有選擇地確定在頁面加載時應用於頁面的樣式表和元素元素,而不必等到頁面加載。 不幸的是,noscript元素僅在頁面主體內有效,因此不能在頭部使用。

  • noscript元素是塊級元素,因此只能在禁用JavaScript時顯示整個內容塊。 它不能用於內聯。

  • 理想情況下,網頁應使用HTML作為內容,CSS使用外觀,JavaScript使用行為。 使用noscript元素是在HTML中應用行為而不是從JavaScript應用它。

資料來源: http://javascript.about.com/od/reference/a/noscriptnomore.htmhttp://javascript.about.com/od/reference/a/noscriptnomore.htm

我非常同意最後一點。 有沒有辦法製作和添加外部<noscript>文件? 我們應該在<head>放置<noscript> <head>嗎?


XML或XHTML5多語言中不支持“noscript”元素,因此W3C不推薦使用。

我也不喜歡這樣的想法:每個頁面都以一個無腳本可視的div開始,然後在網站的每個頁面上被一些Javascripted馬戲技巧隱藏。 如果後來的開發人員改變了,那麼可能會失敗或造成嚴重破壞的危險和更多腳本依賴項。

更好的策略是使用基本的html設計設計您的網站,該設計包含所有內部腳本內容,因此用戶至少可以看到帶有標題的頁面設計和基本內容出現的位置。 如果它是空的很明顯他們無法查看內容是有原因的。 然後我會在頁腳中添加一個小信息或信息圖標,如果你看不到你的javascript被禁用的內容。 看來他們是否看到了腳本內容。 此解決方案是免費腳本。

它不像提供替代內容或消息框那樣性感,但在重型Angular網站的情況下,如果禁用腳本,則無論如何都必須為它們創建新的內容頁面。 消息無濟於事。

此解決方案還考慮了用戶代理與禁用支持中的腳本支持,並通過避免使用noscript標記使您的網頁100%XML和HTML5與所有用戶代理兼容。


像所有事情一樣,使用正確的工具來完成工作。

如果您使用的是Google Maps API,則會通過標記獲得靜態圖像,並將其替換為動態JS地圖。 谷歌最近開始收取所有費用,因此上面的例子它將花費你兩次,一次是靜態的,一次是動態的。 只有在禁用JS時,靜態映射才有意義。 因此,為了節省雙倍付費,在我看來,最好的解決方案是在標籤中包裝靜態地圖的標籤。


在(希望接近)未來,您將能夠使用css腳本

@media (scripting: none) {
    /* styles for when JS is disabled */
}

我創建一個完整的高度,全寬,位置:所有頁面中的固定div具有一些id。

<div id='noscript_div' style='position:fixed;z-index:20000000;height:100%;width:100%;line-height:100%;'>enable JS buddy</div>
$('#noscript_div').hide();
$(document).ready(function(event){




});

我不是專家 。 這對我有用。 對不起,但是,只有當您希望用戶始終啟用其javascript時,此情況才適用


我看到的一個有用的noscript應用程序是逐步增強重內容的異步加載(特別是“低於首屏”)。 大圖像,iframe等可以包裝在HTML源代碼中的noscript中,然後在DOM準備好之後,可以使用JavaScript將展開的元素附加到頁面。 這會解除對頁面的阻塞,並且可以提供更快的初始加載體驗,特別是如果您的界面依賴於文檔準備就緒後應用的JS / JQ交互(我諮詢的投資組合頁面為2秒與6秒)。


最好將默認設置為非javascript,然後讓javascript代碼覆蓋啟用javascript的頁面。 不必太多。 可以只是一個display:none; 塊,然後設置為display:block; 通過javascript,反之亦然非js頁面。


簡單的ideea是在這個時候你的網站可能適應慢速設備上使用noscript標籤,如你的網站的整個內容的實體** **( 你的HTML應該準備沒有JavaScript,所有控件也必須工作,如果javascript關閉,使用基本html控件的用戶應該能夠在javascript處於活動狀態之前完成他們所做的一切。所以<noscript></noscript>可以動態切換到相同的內容以其他方式使用相同的結果=解決問題這是用戶打開你的網址的原因 。)**你可以看到無論javascript是否存在,網站的功能在任何情況下js啟用/禁用都可以“相同”。對於中國慢速設備,例如:Samsung neo迷你手機這種方法可以運行一個網站,沒有任何延遲低互聯網流量..嘗試運行這個自動雙功能網站,如果js是開/關情況:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
<HEAD>
<TITLE>noscript can change the Internet forever</TITLE>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
$(document).ready(function(){
    $('noscript').replaceWith(function() {
        return this.textContent || this.innerText;
    });
    $("p#javascripton").css("background-color", "yellow"); 
    $("p").click(function(){
        $(this).hide();
    });
}); 
//-->
</SCRIPT>
<noscript>
<p>
Noscript's usage today can be logical for <a href="http://google.com/"><p id="javascripton">eg pc/laptop/high quality tablets usage the complete website with all features:images high resolution,javascript<br><h1>OR without javascript so no high resolutions images inserted with a jquery automated script generated from some php+javascript scripts so have usage for 80% mobile application cause almost are from China ,so low quality products=low cpu,low ram :IN THIS CASE SOMEONE CAN THINK TO SWITCH HIS PHONE TO NO JAVASCRIPT USAGE SO IF ANY PROGRAMMER CAN ADAPT AN ENTIRELY APPLICATION TO THE METHOD I USED IN THIS EXAMPLE AUTOMATED HIS BROWSER IS ADAPT FOR ANY RANDOM ACTION ABOUT THE USER CHOISE(YOU UNDERSTAND "TO USE OR NOT JAVASCRIPT") SO HIS CHINESE PHONE CAN BE APROXIMATELLY APROACH LIKE QUALITY OF SPEED EXECUTION THE OTHERS PC/LAPTOPS/TABLETS QUALITY PRODUCTS.<BR><BR>This stupid example is the best example how no script tag can change the quality of services on this planet ,boost the speed of the internet connection and stops unnecessary use of A LOT OF INTERNET TRAFFIC on slow devices..a simple tag can change the entirely dynamic of programmer's views so entirely Planet's beneficts</h1><p></a> <br>
run this code in two instances :<br>with browser javascript enable <br>and without(browser's javascript disable or eg a firefox plugin noscript states on/off)
</p>
</noscript>
</BODY></HTML>

並且更多地說這個..當ns被禁用時,noscript被發明為像觸發器一樣工作但是你可以解決這個功能來改變現在的互聯網功能的過程,改變它的動態....


雖然Tor Valamo對這個問題有一個優雅的答案,但是有一個問題可能導致你選擇不使用這種技術。

問題是(通常)IE。 它傾向於加載和執行JS比其他瀏覽器慢一點,導致它有時會閃爍“請啟用你的Javascript”div一瞬間然後加載JS並隱藏div。

這很煩人,你可以實現“經典”。 <noscript>重定向方法。

<head>
<noscript><meta http-equiv="refresh" content="0; URL=/NO_SCRIPT_URL/ROUTE_HERE"/></noscript>
</head>

這是我遇到的關於這個小討厭的最堅固的技術。





noscript