varcontainer = $ ('#target' );
container.attr('tabIndex','-1');
$('.ajaxtrigger').click(function(){
var トリガー = $(this );
var url =trigger.attr('href');
if(!trigger.hasClass('loaded')){
trigger.append('
');
trigger.addClass('loaded');
var msg =trigger.find('span::last');
} else {
var msg =trigger.find('
}
doAjax(url,msg,container);
関数 doAjax(url,msg,container); {
/ / URL が http で始まる場合
if(url.match('^http')){
// YQL 呼び出しをアセンブルします
msg.removeClass('error'); 🎜>msg.html (' (読み込み中...)');
$.getJSON("http://query.yahooapis.com/v1/public/yql?"
"q=select * from html where url=" "
encodeURIComponent(url)
""&format=xml'&callback=?",
function(data){
if(data.results[0]){
var data = filterData (data.results[0]);
msg.html(' (ready.)');
html(data). 🎜>effect(" ハイライト",{},1000);
} else {
msg.html(' (エラー!)'); var errormsg = '
エラー: ページを読み込めませんでした。
';
html(errormsg).
effect(). ',{color: '#c00'},1000);
}
}
); else {
$.ajax({
url: url, タイムアウト:5000、
成功: function(data){
msg.html(' (ready.)');
コンテナ。
focus()。
effect( "ハイライト",{},1000);
},
error: function(req,error){
msg.html(' (エラー!)'); msg.addClass(' error');
if(error === 'error'){error = req.statusText;}
var errormsg = '通信エラーが発生しました: '
コンテナ.
html (errormsg).
effect('highlight',{color:'#c00'},1000);
beforeSend: function(data) ){
msg.removeClass('error');
msg.html(' (読み込み中...)')
}
}); 🎜>function filterData( data){
// 厄介なものをすべて除外
// body タグなし
data = data.replace(//body[^>]*>/ g,'') ;
// 改行なし
data = data.replace(/[r|n] /g,'');
// コメントなし
data = data.replace (/<- -[Ss]*?-->/g,'');
// noscript ブロックはありません
data = data.replace(/
/g,'');
// スクリプトブロックなし
data = data.replace(/