2017-09-25 9 views
0

リンクをダウンロードするオプションが表示されましたが、すべてのリンクの自動ダウンロードが見つかりませんでした。jqueryまたはvanilla javascriptの自動読み込み(jquery load)ページ内のすべてのリンクコンテンツ

自動ロードが必要ですが、jquery loadまたはajaxまたはhttp requestまたはloadPageSectionを使用することは重要ではありません。どのオプションも問題ありません。

まずは、リンクごとにクリックエミュレーションでもっとも簡単なバージョンを考えました。

$(function() { 
    document.querySelector('.className').click(); 
}); 

$("a").click(function() { 
    $("#pageLoad").load($(this).attr("href")); 
    return false; 
}); 

ただし、リダイレクトとして機能し、最初のページにリダイレクトされました。今まで、最初のページのみが

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script> 
$(function() { 
    $('a').each(function() { 
    $(".pageLoad").load($(this).attr('href')); 
    }); 
}); 
</script> 
<table align="center"> 
    <tr><td> 
    <a href="test.html" class="className">first</a> 
    <div class="pageLoad"></div></td><td> 
    <a href="test1.html" class="className">second</a> 
    <div class="pageLoad"></div></td><td> 
    <a href="test.html" class="className">third</a> 
    <div class="pageLoad"></div></td></tr> 
</table> 

すべてのページがロードされていることが必要であるがロードされているものの、 次に、私は各(function()のクリックを交換し、すべてが動作します。 <a href 理想的には、<div class = "pageLoad">はありません。すべてが自動的にdivを生成し、おそらくは子供として追加されるべきです。

さらに重要なことに、jQueryを使用すると、load ('test.html #target');を使用して必要な要素をダウンロードすることができます。

$(". pageLoad").load($ (this #target).attr ('href'));は動作しません。

この場合、必要なフラグメントをダウンロードするにはどうすればよいですか?

最後に:読み込まれたページにリンクがある場合は問題がありますか?すべてが1回ロードされている間は問題はありません。

ページ内のすべてのリンクに対して、リンクの内容を一度だけ読み込む必要があります。

これらの問題の解決策は、私にとっては複雑すぎます。

更新:

<script> 
$.ajaxSetup({ 
'beforeSend' : function(xhr) { 
xhr.overrideMimeType('text/html; charset=windows-1251'); 
}, 
}); 

$(function() { 
$('a').each(function() { 
$(this).parent().find(".pageLoad").load($(this).attr('href') + ' #inf-1751'); 
}); 
}); 
</script> 

私は、エンコーディングの表示を修正しました。 最後の問題は、要素のアンカーを使用することです。 アンカーだけを追加した場合は、ページのコピーを読み込みます。別のページにある場合は、アンカーも動作せず、ページ全体が読み込まれます。

+0

ですから、それぞれ別々のdivにページをロードする.pageLoadを追加する必要が.pageLoadを追加しないように

$('a').each(function() { $(this).parent().find(".pageLoad").load($(this).attr('href')); }); 

たい場合は? – Firanolfind

+0

誰にでも普遍的な機能を持たせるのが良いでしょうが、私にとっては、それは十分です。そのような結果は、常に正規表現を使ってdivを追加するか、かなり簡単に作成することです。 – novicer

+0

私はあなたを得て、私の更新された答えをチェックすると信じています。 – Firanolfind

答えて

-1

各ページを各リンク関連のコンテナ.pageLoadにロードする場合は、そのように見えます。あなたは

$('a').each(function() { 
    $(this).after('<div class="pageLoad"/>').load($(this).attr('href')); 
}); 

フライ

に手動

<table align="center"> 
    <tr> 
    <td> 
     <a href="test.html" class="className">first</a> 
    </td> 
    <td> 
     <a href="test1.html" class="className">second</a> 
    </td> 
    <td> 
     <a href="test.html" class="className">third</a> 
    </td> 
    </tr> 
</table> 
関連する問題