問題タブ [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 - jsdomと外部jQuery
クライアント側で使用されているjQuery関数の束を含む.jsファイルがあります。サーバー側でも使いたいのですが、どうすればいいのかわからないです。これを達成するために、コードを何度か繰り返しました。私が聞いた最後の解決策は、使用するためにjavascriptを別のスクリプトに挿入することでした。これを行う方法がわかりません。以下にコードを投稿します。
他のスクリプトからtemplateparser.process_table()関数を呼び出そうとすると、毎回クラッシュします。
クライアント側の.jsを変更せずにこれを行う必要がある別の方法はありますか?
javascript - NodeJSを使用したサーバー側のHighStockチャートの生成
HighStockを使用して、ブラウザーでいくつかのグラフを生成しています。しかし今、私はそれらのいくつかをサーバーに保存したいと思います。したがって、HighChartsをサーバーにエクスポートできることはわかっていますが、可能であれば他の方法を使用したいと思います。サーバーでHighStockを実行し、svgを何らかの画像形式に変換して、そこに保存することが重要です。
クイックグーグルでこのページが表示されます。HighChartsとNodeJSを組み合わせるのは正しい方法のようですが、このソリューションは新しいバージョンのHighChartsでは機能しません。より正確には、NodeJSでHighStock v1.0.2を使用してjsdomモジュール(v0.2.10-最新)を使用します(次のコードを参照してください)。
例外をスローします:
どういうわけか、これら2つのライブラリは連携して機能していないようです。したがって、これは古いバージョンのHighStockで機能する可能性がありますが、実際にはHighStockv1.0.2が必要です。
この問題の解決策はありますか?そのいくつかのより良いライブラリjsdom
?それとも、奇妙でありながら機能するトリックですか?どんなアイデアでもありがたいです。:)
// 編集
ReCoderのおかげで、なんとか機能させることができました。主なことはforExport
、オプションにフラグを追加することでした(例外を防ぐ)。残念ながら、これによりチャートが生成されましたが、ホルダーは更新されませんでした。exporting
モジュール(HighStockパッケージの一部)を追加した後、なんとか機能させることができました。完全に機能するコードは次のようになります。
チャートは本来あるべきほど良くはありませんが(たとえば、ラベルの配置が悪い)、おそらくそれはオプションの調整の問題です。少なくともそれは機能します!
jquery - Zombiejs jQuery nullTypeError'compareDocumentPosition'
ゾンビ:nullのプロパティ'compareDocumentPosition'を読み取れませんTypeError:nullのプロパティ'compareDocumentPosition'を読み取れません
これは、Zombiejsを使用してjQueryを含むページを読み込もうとするといつでも発生します。これは、DebianとWindowsで、さまざまな異なるページで、異なるバージョンのjQueryを使用し、ページ上に他に何もない状態で発生しました。
ページドキュメントの準備が整う前にjsDomがjQueryを評価する方法と関係があるようですが、それは私の頭をはるかに超えています。
誰かがこれに遭遇したり、回避策を知っているか、または何かポインタを持っていますか?ありがとう!
更新:これは私のテストです(実際には合格ですが、デバッグで実行すると、前述のエラーが表示されます):
そしてこれはエラーです:
'$'が残りのスクリプトで定義されていないため、他のエラーが発生します。
これは私がテストしているページのHTMLです:
jquery - javascriptが値をロードした後のNodejsスクレイピングWebサイト
おそらくnodejs/jsdomに関する初心者の質問
node.js を使用して Web サイトをスクレイピングしようとしています。私はjsdomとjqueryを使用してhtmlを取得し、必要なものを解析しています。しかし、どういうわけか私が得ている値はウェブサイトに表示されているものではありません。基本的に、値はJavaScriptによって動的に変更され、それらの値が必要です。スクレイピングに nodejs/jsdom を使用していた全体的な理由は、js が実行され、そのイベントの後に値を取得するためでした。
javascriptが実行されるまで待つようにjsdomに指示する方法はありますか? それとも私はこれをすべて間違っていますか?私はこの問題について多くのことをグーグルで調べました。
jquery - node.js で jquery をインストールできない - Contextify を読み込めない
更新 - 投稿の下部を参照してください
node.js で jquery をセットアップしようとしていますが、問題が発生しています。SO で説明されているように、jquery をインストールしnpm install jquery
て、javascript をサーバーとして実行するのではなく、コマンド ラインからスクリプトとして実行しています。
いくつかの注意点:
- OS X 10.7.3
- node.js バージョン 0.6.11
- npm バージョン 1.1.1
- node-waf バージョン 1.5.16
したがって、ノード スクリプトを含むディレクトリから I npm install jquery
. その後、ターミナルは 5 秒間オフになり、いくつかのことを行います。特に、モジュールのダウンロードとコンテキスト化のビルドです。最後に、メッセージは'build' finished successfully
.
また、インストールログから次のように表示されます。
- htmlパーサー1.7.4
- jsdom 0.2.10
この時点でスクリプトを実行しようとしました: ./script.js
、しかしこれは出力です:
だから、私は次のことをします:
Internal Contextify ERROR
ただし、スクリプトを実行すると、まだ取得されます。以下は、完全なエラー メッセージです。
not found
コンパイル時の出力は私には奇妙に思えますChecking for node path
が、それが私にとって予想外であるということ以外に、それをどうすればよいかわかりません。
誰かが提案を提供できるなら、私はそれを大いに感謝します!
更新 - 2012 年 2 月 21 日
さらに調査した結果、ノード パスが見つからないという奇妙な点を修正することができました。実行後:export NODE_PATH="/usr/local/lib/node"
ターミナルでは、ビルド プロセス中にノード パスが検出されます。ただし、jquery モジュールを削除して再度インストール/ビルドした後も、同じ状況のままです。
指定したリリース ディレクトリに contextify.node ファイルが存在しますが、スクリプトでまだロードできません。
node.js - 単純なjsdom関数から値を返すにはどうすればよいですか?
私はjqueryでjsdomを使用していますが、問題なく動作しています。ただし、コードを少しモジュール化しようとしているので、繰り返しません。そこで、html(DOM)を取り込んでjqueryで微調整し、吐き出すjsdomコードから基本的な関数を作成しました。 。ただし、結果を返すことができないため、呼び出し元の変数に割り当てることができません。私はおそらく正しい場所に戻っていないでしょうが、そうだとすれば明らかなことはわかりません。少し助けを使うことができます。
コードは次のとおりです。
編集:
これは確かに非同期の問題だったので、リターンの代わりにコールバックを使用して行う方法は次のとおりです。
javascript - Zombie による複数の JS ファイルの非同期ロード
最初の数時間はゾンビを試してみて、とても興奮しています。唯一の (初心者の運?) 問題は、スクリプトが非同期に読み込まれ (これはすばらしい)、ダウンロードされた順序で実行されるように見えることです (「元の」HTML ファイルで言及されている順序ではありません)。私は説明します:
http://jsfiddle.net/viebel/GWYEj/ - 次のスクリプトは jQuery をロードし、それを使用しようとします。jQueryのダウンロードには時間がかかりますが、Zombieはダウンロードが完了する前に次のスクリプトセクションに進むようです。明らかに、jQuery なしでは $('body') にはあまり意味がないため、次のエラーが発生します。
「通常の」ブラウザでは、コードは問題なく動作します。はい、node.js が実際にはクライアント側の JavaScript ではないことはわかっていますが、Zombie.js はそうあるべきですよね?
私たちが間違っていることを助けてください。
javascript - Cakefile から d3 を実行したい
コマンドラインからいくつかの d3 コードを実行したいと思います。最初は次のようなことを試しました:
しかし、これはうまくいきませんでした。次のようなエラーが発生しました。
だから...私は、この例外が、ブラウザ内でd3を実行する必要があることを示していると考えました。これをいくつかの異なる方法で試しました。基本的にはphantomjsを起動すればやりたいことができるだろうと思っていました。これが私のCakefileでした:
ただし、このルートに行くと、常に次のような例外が発生します。
私は何を間違っていますか??
mbostock のおかげで、次の作業ができました。
私のpackage.json:
私のケーキファイル:
perl - jqPlotチャートをサーバー側の画像として正常にレンダリングした人はいますか(例えば、node.jsを使用)?
残念ながら、私の組織はまだしばらくの間 IE6 で立ち往生しています (ええ、私は知っています...)。
私は jqPlot が大好きですが、IE6 は jqPlot について同じように感じていません。そこで、IE6 の多くの失敗とメモリ リークを回避しようとするのにうんざりしていたので、サーバー上でグラフの画像 (おそらく PNG) を生成することで問題を回避しようと考えました。私の目的では、クライアント側チャートのインタラクティブな性質は、サーバー上にチャート画像のキャッシュを生成し、IE6 へのストレスを軽減する機能ほど有用ではありません.jqPlot 出力が正しく印刷されないという問題もきちんと解決します. IE6から(excanvasの問題かもしれないと思います)。
しかし、問題は、私が見つけたサーバー側のソリューションのどれも、jqPlot の視覚的/美的魅力に匹敵するものがないことです。サーバー側では、私は Perl に最も慣れており、CPAN で利用できるものは、機能的だが醜いもの (Chart::Gnuplot など) から、美しいが入手できないもの (Chart::Clicker など、無数の前提条件があり、実行できなかったもの) までさまざまです。 1 週間試した後でも、Windows/ActiveState Perl にインストールしたくありません)。
Google によると、node.js を使用してサーバー上の jqPlot から PNG を生成しようとした人が何人かいるかもしれませんが、成功したという証拠は見つかりませんでした。これまで node.js を使用したことがないので、node.js/jsdom の学習曲線を試す前に、不可能なことを試みていないことを少し安心させたいと思います...
あなたが与えることができるアドバイスは大歓迎です(「ブラウザをアップグレードする」ことは別として-それは最終的には起こりますが、予見可能なものではありません)。
javascript - nodejs 応答書き込みの漢字
nodejs を使用してブラウザに漢字の応答を表示できませんか?
誤った結果 : �ٶ�क�£��������
正しい結果は : 百度一下,你就知道