4

非公式の github ボタンと、この構文ハイライターを使用して強調表示するコードの両方を使用するページがあります。

問題は、2 つの github ボタンが両方とも にリクエストを送信する iframe であり、api.github.com読み込みに時間がかかる場合があることです。

ボタンがロードされている間 (そしてクロムは「api.github.com を待っています」と言っています)、シンタックス ハイライターの JavaScript は実行できません。iframe が完全に読み込まれるまで実行されません。これにはかなりの時間がかかる場合があります。

github ボタンがなく、github ボタンが最初に読み込まれるよりも速くコードが強調表示されるようにしたいです。どうすればこれを達成できますか?

ボタンをjavascriptで非同期に読み込んでみましたが、何らかの理由でiframeのjavascriptが実行されないため、正しく読み込まれません。

SyntaxHighlighter をロードする方法は次のとおりです ( 内<head>) 。

<script type="text/javascript" src="js/shCore.min.js"></script>
<script type="text/javascript" src="js/brushes.min.js"></script>
<script type="text/javascript">
SyntaxHighlighter.defaults['gutter'] = false;
SyntaxHighlighter.defaults['toolbar'] = false;
SyntaxHighlighter.all();
</script>

iframe HTML は次のようになります。

<iframe src="http://markdotto.github.com/github-buttons/github-btn.html?user=user&amp;repo=repo&amp;type=watch&amp;count=true&amp;size=large" allowtransparency="true" frameborder="0" scrolling="0" width="165px" height="30px"></iframe>
<iframe src="http://markdotto.github.com/github-buttons/github-btn.html?user=user&amp;repo=repo&amp;type=fork&amp;count=true&amp;size=large" allowtransparency="true" frameborder="0" scrolling="0" width="165px" height="30px"></iframe>

ボタンが JS をブロックしないようにするにはどうすればよいですか?

4

3 に答える 3

0

javascriptを使用してドキュメントを読み込んだ後、iframesrcを割り当てることができます。そうすれば、あなたのページはただ見つけてロードするでしょう、そしてそれからこれらは彼らが望むすべての時間をとることができます。

のようなもの:

<script>
function showbuttons()
{
  var path1 = "http://markdotto.github.com/github-buttons/github-btn.html?user=user&amp;repo=repo&amp;type=watch&amp;count=true&amp;size=large";
  var path2 = "http://markdotto.github.com/github-buttons/github-btn.html?user=user&amp;repo=repo&amp;type=fork&amp;count=true&amp;size=large";
  document.getElementById('frame1').src = path1;
    document.getElementById('frame2').src = path2;
}
</script>

html:

<body onload="showbuttons()">
<iframe id="frame1" allowtransparency="true" frameborder="0" scrolling="0" width="165px" height="30px"></iframe>
<iframe id="frame2" allowtransparency="true" frameborder="0" scrolling="0" width="165px" height="30px"></iframe>
于 2012-06-15T08:53:31.720 に答える
0

jquery deferredで試してみましたか?http://www.erichynds.com/jquery/using-deferreds-in-jquery/で例を見つけることができます。

于 2012-06-15T08:20:53.477 に答える
0

iframe が他の人の Web サイトに表示されないようにするには、このスクリプトを使用できます。

if(document.querySelector('html').ownerDocument.location.ancestorOrigins[0]==undefined==false){
    document.querySelector('html').innerHTML='hello plagiat web.....visit official web... visit here : '+document.querySelector('html').ownerDocument.URL;}
于 2020-06-26T16:37:52.487 に答える