問題タブ [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.
javascript - 相対パスを持つ jsdom および script タグ
このような単一ページのデモがいくつかあります: http://notjs.org/examples/forms/formmode_demo.html
私の既存の mocha chai badness セットアップでいくつかのテストを記述して、例を次のように直接テストできれば、すごいと思いました。
それができれば、「あなたの例 x は数か月前に機能しなくなった」という恥ずかしい瞬間に苦しむことはありません。
私はそれを動作させましたが、http://urls から src されたページのスクリプト タグのみを使用しました。テストの前にパッケージをサーバーにデプロイする必要がある場合、テストはそれほど効果的ではありません。
サンプル ページは jquery、underscore、および notjs をロードし、スタンドアロン デモとして機能するために必要です。また、ローカル ファイル システムから相対 URL を使用して機能する必要があります。私はもともと、ページ上のnotjsスクリプトタグが相対パスを指すようにしていました。
それ以外の
しかし、notjs.basics.js はロードされず (window.Notjs == テストでは未定義)、jsdom からのエラーは表示されません。documentRoot jsdom オプションを設定しようとしましたが、うまくいかないようです。
参考までに、loadExample メソッドと残りの jsdom セットアップはこちら: https://github.com/bee-hub/notjs/blob/master/test/testHelper.coffee
助けと提案をありがとう。
javascript - 必要なオプションを指定してjsdomを使用してiframeを作成したiframe.contentDocument iframeのオブジェクトnullを取得する
必要なパラメーターで jsdom を使用しています
contentDocument に対して null を取得しています。jsdom で iframe の html オブジェクトを取得するにはどうすればよいですか?
node.js - 「base」タグが jsdom.env の動作を妨げているのはなぜですか?
アップデート:
jQuery の実行に失敗したページで使用されているタグ「base」を見つけました。Web サイトにそのタグが含まれている場合、jsdom は機能しません。理由はわかりませんが。
これを確認するために、新しい HTML ファイルを作成して内部に配置すると、jsdom が失敗します。
私は現在 Node.js で遊んでいます。Node.js と jQuery を使用して Web ページをスクレイプする方法を読んだ後、自分用に作成することにしました。
そこで、express、jsdom などをインストールしましたが、Web ページをスクレイピングするのに非常に便利であることがわかりました。しかし、後で特定のページをスクレイピングできないという奇妙な状況を発見しました。代わりに、次のようなエラーが表示されます。
これが私のコードです:
この場合、 Web サイト " http://bbs.18183.com/ " は機能していませんが、他の多くの Web サイトは機能しています。たとえば、「http://www.18183.com/」に変更すると、機能します。
「$」の定義の競合が原因だと思いますが、後で jsdom.env を使用すると、ページが単なる DOM ツリーであることに気付きました。$ を他の名前に変更しても、まだ機能しません。
誰もこれについて何か知っていますか?
jquery - DOM 選択を絞り込むときに予期しない結果が得られる
特定の要素のテキストを取得しようとすると、div
複数のjQuery関数をチェーンするときに以前のすべての「一致」を取得するという非常に奇妙な動作があります。
これは私のコードです:
私が期待する出力は、一致したテーブル行の最初の子に含まれる div に含まれるテキストだけです。コンソールでその結果を取得しますが、その前に、すべてのテキスト、tr
すべての一致したtr
( .eq(i)
)、すべての td の ( :first-child
is a td
)、すべてdiv
の および THEN 出力の最後のビットでテキストを取得します最初の に含まれていdiv
ます。
だからgroups
、私がこのようなことをしたように、すべてのものを保持しています:
私は jQuery を初めて使用し、標準の JavaScript セレクターのみを使用しましgetElementById("myID").getElementsByTagName("div")[0].innerHTML
た。innerHTML
div
myID
なぜこれが起こっているのですか、実際に探しているものをどのように入手できますか?
node.js - npmがWindowsにjsdomをインストールしない
jQueryを使用してnode.jsでアプリを構築していますが、実行しようとすると、モジュールが見つからないと表示さjsdom
れるため、jQueryをインストールしてもこの依存関係がインストールされなかった理由がわかりませんが、手動で実行すると、次のnpm install jsdom
エラーメッセージが表示されます。
MSBUILD: エラー MSB3428: Visual C++ コンポーネント "VCBuild.exe" を読み込めませんでした。これを修正するには、1) .NET Framework 2.0 SDK をインストールする、2) Microsoft Visual Studio 2005 をインストールする、または 3) コンポーネントが別の場所にインストールされている場合は、その場所をシステム パスに追加します。[C:\Sites\myapp\node_modules\jsdom\node_modules\contextify\build\binding.sln]
最初のオプションを試しましたが、それでも役に立ちませんでした。私は何をしていますか (行方不明 | 間違っていますか)?
web - npm を使用して jsdom をダウンロードするとエラーが発生する
私の OS は Windows 8.1 プレビュー、Python 2.7、vc++2010 で、C++ の環境変数が追加されましたが、まだ動作しません。ありがとう
node.js - window.addEventListener は空のウィンドウでは機能しません
JSDOM バージョン : 0.6.5 Nitrous.io Cloud IDE 環境
確認された問題: 空のウィンドウを作成してからイベント ハンドラーをアタッチすると、例外トレースで失敗します:
問題のコード スニペットは次のとおりです。
ここで私が見逃しているものを誰か教えてもらえますか?