問題タブ [jsdom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - node.js:jsdomの問題-jQueryオブジェクトは未定義を返します
プロジェクトの1つでサーバー側のDOM操作を行うことに興味があるので、node.js、特にjsdomを調べることにしました。私はnode.jsにまったく慣れていないので、おそらく私の間違いは明らかですが、それでもなお、私の問題の解決策をどこにも見つけることができませんでした...
まず、Windowsでノードをローカルで実行しており、オンラインIDEcloud9も使用しています
必要な依存関係のcontextifyがWindowsではコンパイルされないため(0.2.15)、ノードの最新のjsdomパッケージ(0.2.15)のインストールで問題が発生したため、言及する価値がありました(C ++とPythonが必要であり、npmはC ++パッケージのビルドをサポートしていないことがわかりました) 。だから私は2つの代替アプローチを取りました:
contextifyに依存しない古いバージョン、つまりjsdom@0.2.1をインストールしました。これが私が現在持っているもののnpmリストです
jsdom github repo cloud9から取得した簡単なテストスクリプトを実行しようとすると、この警告が返されました
sysのすべての言及をutilに置き換えてこれを修正しようとしましたが、エラーが消えました...(それでも正しいことかどうかはわかりませんが...)。そして最後に、このスニペットを実行しようとしたとき
私はそれを見つけました
window.$ === undefined
。cloud9上のノードv0.6.xとノードv0.4.x、およびローカルのノードv0.8.7で実行しようとしました。私がやろうとしたもう1つのことは、最新のjsdom@0.2.15をインストールし、ここからコンパイルされたcontextifyを取得し、バインディングをインストールして、 contextifyがそれに依存しているのでcontextify/node_modulesに追加することでした。私はそれをまったく機能させることができませんでした=(これは誤ったアプローチのようであり、contextifyが最新ではないため、多くの時間を無駄にしませんでした。
これがnpmリストです
/li>
また、これが私のcloud9ワークスペースです。恥ずかしがらずに遊んでください。
助けていただければ幸いです。たぶん、私が望んでいたことを達成するために他にもっと良いものがあります。
ありがとう。
javascript - cloudfoundryでのJSDOMスクレイピングが機能しない
必要なデータを取得するためにWebスクレイピングを行うアプリにjsdomnode.jsモジュールを使用しています。ローカルで実行すると、これは完全に正常に機能します。
ただし、アプリケーションをcloudfoundryにプッシュすると、クラッシュします。ログは次のとおりです。
====> /logs/stderr.log <====
/var/vcap/data/dea/apps/caretogethersandbox-0-8b20af9255bbf552d0f490cb60d0df55/app/node_modules/jsdom/lib/jsdom.js:171 features = JSON.parse(JSON.stringify(window.document.implementation._fea ^ TypeError:未定義のプロパティ「実装」を読み取れません
ここに欠けているものはありますか?私はかなり困惑しています。私が書いたコードは正常に機能することを知っています。それはモジュールとcloudfoundryの間の問題のようです。
node.js - jsdom のドキュメントはどこにありますか?
https://github.com/tmpvar/jsdomの readme よりもわかりやすい jsdom に関するドキュメントを探しています。
具体的には、jsdom によって作成された DOM ノードの nodeType プロパティを解釈する方法についての指示を探しています。プロパティは、私が見る限り固有の意味を持たない整数を格納します。直前の例では、どの整数がどの DOM ノード タイプにマップされるかを発見するために実行できるテストがいくつかあると確信していますが、これらのオブジェクトを回避するためだけにカスタム テストとイントロスペクション コードを記述するには長い時間がかかります。ドキュメントを使用するその他の質問は、ノードの親に直接アクセスする方法、子をトラバースする方法、テキスト データにアクセスする方法などです (すべて jquery 固有の関数の外部でオブジェクト プロパティに直接アクセスすることによって)。
DOM ノードのプロパティに関する jsdom ドキュメントはどこにありますか?
javascript - ノード プロジェクトで d3 を要求すると、jsdom エラーが発生する
ここで何が起こっているのか、私は本当に混乱しています。d3 2.10.1 では、 d3 の次require 'd3'
の行で呼び出しにより jsdom に関するエラーが生成されます。index.js
jsdom は、npm インストールの d3 の node_modules フォルダーにありました。ただし、package.json/slug.json の依存関係として jsdom を直接インストールしても、同じエラーが発生します。上記の行でスローされた d3 が必要な場合の問題は次のとおりです。
これは、古いバージョンの d3 (2.8.1) でも発生します。Spine/hem/npm アプリで d3 を使用していますが、何が原因なのかわかりません。今のところ、d3.v2.min.js スクリプトを要求しただけですが、これは一時的なハックです。
ノードの戦士が私を助けてくれることを願っています!
jquery - node.js - jsdom / node-jquery を使用してページの外観を更新するにはどうすればよいですか?
私が見つけたドキュメントはすべて、情報を得るために「他の人のページをスクレイピングする」ことjsdom
に関するものだったようです。またはのいずれかを使用して、ユーザーがいるページを更新します。コードを書くときは、パブリック ディレクトリにある JavaScript ファイルにリンクする通常のタグを使用するだけでよいことはわかっていますが、それが可能であれば、サーバーからその方法を学びたいと思っています。私が本当に望んでいるのは、複数のユーザーがページに接続できるようにし、1 人のユーザーがアクションを実行したときにすべてのユーザーのページを更新できるようにすることです。たとえば、ボタン 1 は背景を黒にします。ボタン 2 は赤に、ボタン 3 は白に変わります。間違っている場合は訂正してください。ただし、タグを介して JavaScript ファイルにリンクすることで、それが可能になるとは思いません。だから見ているjsdom
node-jquery
<script>
<script>
jsdom
:
わかりましたので、ここに問題番号 1があります。DOM オブジェクトを取得するために、このビットのコードで html に何を入力すればよいか、または何ができるかわかりません。私のファイルは jade で書かれているので、ファイルからロードすることはできません。次に、このコードをコードのルーティング部分に配置して、req
変数から html を取得できるのではないかと考え始めました。そこで、ルーティング コードをいじり始めました。
そして、このルーティング全体がすでに私の心を吹き飛ばしているとだけ言っておきます. もう一度試してみましres.render
たが、うまくいきません。したがって、問題番号 2につながります。DOM オブジェクトを取得して操作できたとしても、どうすればそれらをクライアントにプッシュできるかわかりres.render
ません。言うまでもなく、再レンダリングする場合は別のページにリダイレクトする可能性があるため、目的が無効になることは言うまでもありません。
ユーザー接続を処理するために使用することを計画してsocket.io
いるので、おそらく鍵はそこにあります。多分私は a を設定できますsocket.on('button_click', function(){ ... });
が、DOM 操作と DOM の更新を処理するためにその関数内に何を配置するか、または'button_click'
クライアントがソケットにアクセスできないためにクライアント側でボタンを発行する方法がわかりません。イオ変数。
したがって、誰かがこれらのことを例を使用して私に説明するのを手伝ってくれたら、とても素晴らしいでしょう. 私は本当にこれらすべてを理解しようとしました.node.js、express.js、socket.io、jsdom、およびnode-jqueryのAPIドキュメントを調査して読むのに数日を費やしました。私が見つけたすべての例は、それ自体の領域にとって非常に基本的なものであり、実際にそれらを結び付ける例はないようです.
javascript - Web ワーカー内の HTML 文字列コンテンツ用の DOM ライクな API
Web ワーカー内の html 文字列操作に役立つライブラリはありますか?
私ができるようにしたいのは、ワーカー内で、次のようなことができるシズルタイプのセレクターツールを使用することです。
、DOM インタラクションなし。
php - NodeJS と JSDOM/jQuery を使用してスニペットから PHP ページを作成する
準備が整ったコード スニペットから PHP ページを作成し、JSDOM/jQuery でページを変更して遊んでいます。たとえば、次のコードがあります。
しかし、エスケープされたphpタグを挿入します。この文字列をエスケープせずにそのまま入れるにはどうすればいいですか?
Cheerioという名前の別のライブラリを試してみたところ、次のようなコードが正常に機能するようになりました。
文字はエスケープされておらず、これをファイルに適切に保存できます。
更新:私がそうしている理由は、WordPress テーマの作成に対処する必要があり、プロセスを合理化したいからです。私は PHP の大ファンでも WordPress テーマ構造のファンでもないので、Jade で一連のファイルを作成し、それらを Express で実行してから、自動化されたプロセスでそれらを Wordpress テーマとしてコンパイルしたいと考えています。私はこれを行うことにある程度の成功を収めています。ここで、Jade ミックスインを使用してこれを有効にします。
このようなものに:
最も単純な形で。
このようにして、テンプレートを変更しやすく、使いやすく快適に保つことができます。
node.js - node.jsとjsdom-http500エラーが返されたことを検出する方法はありませんか?
node.jsでjsdomを使用していて、httpエラーが発生したことを示すためにjsdomを取得しようとしています。すべてのリクエストに対してhttp500ヘッダーを返すだけのテストサーバーをセットアップしましたが、jsdomを使用してロードしようとすると、jsdomはエラーをスローせず、識別できる情報を提供しないようです。 http500エラーが返されたこと。http 500エラーを検出するための最良の方法は何ですか?