0

HTMLページのコンテンツを返すサーバー側関数があります:

if (Meteor.isServer) {
  Meteor.startup(function () {
    // code to run on server at startup

    Meteor.methods({
      sayHello: function() {
        var response = Meteor.http.call("GET", "http://google.com");
        return response;
      }
    });
  });

そして、この HTML ページからタイトルを取得しようとしているクライアント コードがあります。

'click .add_tag' : function(e,t) { //Session.set('editing_tag_id', e.target.id);

  Meteor.call("sayHello", function(err, response) {
    var title = $(response.content).find("title").text();
    var title2 = $(response).find("title").text();
    var title3 = response.content.match(/<title[^>]*>([^<]+)<\/title>/)[1];
    alert(title3);
  });

jQuery のバージョン ('title' または 'title2') を取得したいのですが、うまくいきません。空文字列を返します。

'Title3' - バージョンは正常に動作しますが、正規表現は好きではありません。:)

「jQuery」バージョンを機能させる方法はありますか?

4

3 に答える 3

1

リクエストに応じて、回答としてコメントを繰り返します...

あなたが気に入らなくても、私は正規表現を使い続けます。純粋に少量のテキストを解析する目的で、本質的にページ全体である DOM 要素を構築すると、膨大なオーバーヘッドが生じます。正規表現はより軽量で、低速のブラウザや低速のマシンでも十分に機能します。

于 2013-07-05T08:00:10.753 に答える
0

1 つ忘れないでください。HTML をクライアントに返してはいけません。クライアントが Template を使用して Html に変換する Json (または Xml) を返す必要があります。あなたは、Bad Ajax を行っている多くの開発者と同じようにやっています。

忘れないでください:「表示ではなく、ワイヤ上のデータのみ」。

したがって、問題はありません。応答時に、Json 形式の応答からデータを取得し、それをテンプレート内に挿入するだけです。

于 2013-07-04T14:23:32.737 に答える