私はjquery-mobile + phonegapアプリケーションを作成しようとしています。これは一部のサイトを単純化したものです。初期のアプローチは致命的だった。そのサイトのいくつかのモデルとコレクションを構築し、parse()をオーバーライドするだけです。ここにいくつかのコードがあります。jQuery(html)を停止する方法内部イメージとリソースをダウンロードする
var Posts = Backbone.Collection.extend({
model: Post,
parse: function(response){
var posts = [];
var $response = $(response);
var $tr = $response.find('div.board_main tr');
$tr.each(function(index){
if(index<2){ return; } // skip notice post
var $post = $(this);
var post_id = $post.find('td').eq(0).text();
var $post_subject = $post.find('td.post_subject');
var post_subject;
if($post_subject.find('a').length){
post_subject = $post_subject.find('a').text();
}else{
return;
}
posts.push({
id: post_id,
subject: post_subject
});
});
return posts;
}
});
はい私はモデルを作るためにHTMLを解析するために$を使ってレスポンスhtmlをラップしますが、その時点ではブラウザはimgのようなアセットをダウンロードします。そのHTMLのスクリプトも私は本文のどこかに追加しませんでした。
この動作をキャンセルするにはどうすればよいですか?または、htmlを解析する別の方法を選択する必要がありますか?
==
編集:私はjQueryを使ってラップする前に、avascript正規表現で前処理を選択しました。今幸せな..私はこれが汚れている知っているが、今のサファリは、アセットをダウンロードしません(IFRAME /スクリプトタグを削除し、img.srcが先に行くためにOKだった置き換える).. :)
function removeTag(html, tag){
var re = new RegExp('<'+tag + '(.+?)' + '</'+tag+'>', 'g');
return html.replace(re,'');
}
function removeImgSrc(html){
return html.replace(/<img([^>]*)\ssrc=/gi,'<img$1 data-src=');
}
私は生のjavascriptの正規表現を解析する必要があります...ありがとう.. :( –