0

まず最初に、実際のサイトではどのような状況でもこれを行うべきではないことを知っていることを述べさせてください。Ok。それは邪魔です。

私の同僚の 1 人は、Javascript は「本物の」プログラミング言語ではないと言いました (彼の「本物」の定義は「コンパイルする」ようです)。

私は、javascript だけを使って Web サイトを作成できると彼に言いました。

document.write('') を使用して doctype を取得し、いくつかのスクリプトを使用して dom とスタイルを作成することで、これを実行できると確信していますが、問題は、ページが JS なしで検証されるため、できないことです。ブラウザが見ているものが実際に検証されていることを彼に示してください。

最初に読み込まれた JavaScript の代わりにブラウザが使用している実際のソースを検証する方法を知っている人はいますか?

4

3 に答える 3

1

FirebugがインストールされたFirefoxにサイトをロードします。「HTML」ビューを起動し、<html>ノードを右クリックして「HTMLのコピー」を選択します。

于 2011-09-26T18:02:52.913 に答える
1

JSが「本物の」言語であることを本当に示したい場合は、ブラウザーを基盤として使用しない方がよいでしょう。node.jsサーバーを使用すると、HTMLドキュメントを生成できます(必要に応じてdocument.writeを使用しますが、DOMはオプションです(ユーザーはクライアント側のライブラリを使用してノード内のドキュメントを操作します)

JSはサーバー上で実行されるため、view-sourceを介してブラウザーから実際のソースを取得するか、バリデーターをURIに直接指定できます(パブリックであるか、バリデーターのローカルコピーをインストールしている場合)。

于 2011-09-26T18:08:13.210 に答える
0

JavaScript を使用して得られる最も近いもの:

var generatedHTML = document.documentElement.innerHTML;
//Retrieves everything within the (missing)HTML tags.
//The only missing parts are DOCTYPE and the <html> itself

var txt = document.createElement("textarea");
txt.style.cssText = "width:99%;height:99%;position:fixed;z-index:999;top:0;left:0";
txt.value = generatedHTML;
txt.ondblclick = function(){this.parentNode.removeChild(this)};
//Adding a simple function to easily remove the textarea once finished

document.body.appendChild(txt);

ブックマークレット (コンパクトになるようにコードを少し調整しました):

javascript:void(function(){var t=document.createElement("textarea");t.style.cssText = "width:99%;height:99%;position:fixed;z-index:999;top:0;left:0";t.value=document.documentElement.innerHTML;txt.ondblclick=function(){t.parentNode.removeChild(t)};document.body.appendChild(t)})()
  1. 生成されたテキストエリアにフォーカスする
  2. DOCTYPE +<html>タグを手動で追加する
  3. textarea の内容をhttp://validator.w3.org/#validate-by-inputのバリデーターにコピーします。
于 2011-09-26T18:00:22.863 に答える