2016-08-29 7 views
1

どこでもこれについての説明はありません。さまざまなブラウザでnoscriptタグがどのように扱われるか

私は単にJSが有効になっている場合noscriptタグ、内部のデータを生成するものブラウザを知りたいです。例えば

はHTML5仕様によれば、headタグ内noscriptタグを使用することができます。

<head> 
<noscript> 
<link rel="stylesheet" href="basic.css" type="text/css" media="all" /> 
</noscript> 
</head> 

私はこの質問を求めている理由は、私はいくつかのブラウザは、テキスト(JSが有効になっている場合)などのものとしてnoscriptタグを扱うことが怖い、結果としてそれが不必要にデータを追加/ロードすることです。

ブラウザでは実際にnoscriptタグをどのように扱うのですか?

ありがとうございました。

+0

@JaromandaX私の質問に答えたところで見積もりを提供できますか? – virosimus

+0

@JaromandaXしかし、__what__ブラウザは、 'noscript'タグ内のデータを使って生成します – virosimus

+0

ああ、あなたはJSが有効になっているときに'

答えて

0

HTML要素は、ページ上のスクリプト・タイプがサポートされていない場合は、スクリプトは、現在のブラウザでオフ ある場合を挿入するHTMLのセクションを定義します。 Source。スクリプトが有効になっている場合

はまた

NOSCRIPT要素は何も表していない、とスクリプトが無効になっている場合 はその子を表します。これは、 がスクリプトをサポートするユーザエージェントに異なるマークアップを提示し、 がどのように構文解析されているかに影響を与えることによって、スクリプトをサポートしないユーザに を提示するために使用されます。 Source

noscriptタグはブラウザ間でよくサポートされていますが、標準仕様からの逸脱はありません。あなたが本当にあなたのテストプロセスをスピードアップするでしょうhttps://www.browserstack.comなどのWebベースのブラウザのテストツールを使用することができます別のブラウザ間でその動作の確認して必要な場合はところで

+0

JSが有効な場合、疑問は__what__が 'noscript'タグの内容(生成するもの)となります。 – virosimus

+0

@virosimusコメントありがとうございます。私はw3のソースへのリンクで私の答えを更新しました。 – GibboK

+0

えええええええええええええええええええええええええええええええええええええ、どうもありがとうございます。 – virosimus

0

これを理解するには、HTML5仕様では、ページがtext/htmlとして配信されるときの(通常の)HTMLと、application/xhtml+xmlとして配信されるときのXHTMLの2つの構文が記述されていることに注意してください。ブラウザは、使用される構文に応じて異なる処理を行います。

あなたが興味を持っているのはtext/htmlという構文だと思うので、その仕様ではsection 8 - The HTML syntaxで起こることが説明されています。

次に、パーサーアルゴリズムのツリー構築段階に従う必要があります。たとえば、<noscript>要素がヘッドセクションにある場合、The "in head" insertion modeを見てください。そこから検索するとgeneric raw text element parsing algorithm.にリンクするA start tag whose tag name is "noscript, if the scripting flag is enabledが見つかります。

これは</noscript>タグが見つかるまで(すなわち、エンティティ参照が解決されていない)も、全ての文字が単に渡されることを意味し、挿入モードがThe "text" insertion modeが切り替わるRAWTEXT stateにトークナイザを置きます。

これは、挿入モードが前のモードに戻るときに</noscript>タグが見つかるまで、各文字をテキストノードに追加するだけです。 「イン・ヘッド」挿入モードと<noscript>要素の構文解析が完了しています。

結果として、<link rel="stylesheet" href="basic.css" type="text/css" media="all" />は、<noscript>要素の唯一の子としてのテキストノードの未解釈の内容になります。

関連する問題