0

images.google.comはどのようにフレームをレンダリングしますか??

外部の Web 表示可能なコンテンツと、管理者のみが使用できる内部検索エンジンを備えた 2 つのサーバーがあります。外部コンテンツは編集できません。独自の技術で作成されています。私がやりたいことは、images.google.com が追加するのと同じように、ページの下部に「管理バー」を追加することで、内部管理者が外部サイト (インデックス) で管理機能を実行できるバーを表示できるようにすることです。ウェブサイトの最初のフレーム。

以下のこのコードを使用して、2 つが同じサーバー上にあり、外部サイトをフレームにレンダリングし、そのフレームを JavaScript で動的にサイズ変更する場合にこれを行う方法を理解しましたが、私の状況ではこれを行う方法がわかりません。 2 つのサイトが異なるサーバー/ドメインにある (これにより、javascript パーミッション エラーが発生します)。

かなりの数の人々が同様の機能 (images.google、diggbar、facebook のバーなど) を実装しているので、それが可能であることはわかっていますが、問題へのアプローチ方法に関する情報を得ることができません。どんな助けでも大歓迎です

<html>
<head> <title>Parent frame</title> </head>

<body onload=”resizeFrame(document.getElementById(’childframe’))” bgcolor=”#cccccc”&gt;

<script type=”text/javascript”&gt;
// Firefox worked fine. Internet Explorer shows scrollbar because of frameborder
function resizeFrame(f) {
f.style.height = f.contentWindow.document.body.scrollHeight + “px”;
}
</script>

<p>Parent frame.</p>
<p>Parent frame.</p>
<p>Parent frame.</p>
<p>Parent frame.</p>

<p>
<iframe frameborder=0 border=0 src=”./child-frame.html” name=”childframe” id=”childframe”&gt;
</iframe>
</p>

</body>
</html> 
4

2 に答える 2

2

Google のソースを表示します。

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title> Google Image Result for http://people.mozilla.com/~cbeard/labs/images/test-pilot.png
    </title>
    <style>
    html
    {
        height: 100%;
    }
    body
    {
        margin: 0;
        font: 62.5% arial, sans-serif;
        height: 100%;
        overflow: hidden;
    }
    a, a:visited
    {
        color: #00c;
    }
    div
    {
        font-size: 130%;
    }
    #details
    {
        float: left;
        margin-top: 10px;
    }
    #details p
    {
        padding: 0;
        margin: 0 0 2px;
    }
    img
    {
        border: none;
    }
    #outer-separator
    {
        clear: both;
        width: 100%;
        border-bottom: 2px solid #404040;
        border-top: 1px solid #a0a0a0;
        margin: 10px 0 0;
        padding: 0;
        font-size: 1px;
        overflow: hidden;
    }
    #separator
    {
        background: #eaeaea;
        height: 3px;
    }
    table
    {
        font-size: 100%;
    }
    </style>
  </head>
  <body>
    <table cellpadding=0 cellspacing=0 height="100%" width="100%">
      <tr height="1%">
        <td style="top:0;width:100%">
          <div class=std style="background:#ebeff9;padding:6px 8px">
            <a href="http://images.google.com/imghp?hl=en">
              <img src=/images/isr_g.png style="padding:0;margin:0;vertical-align:middle;border:0" title="Go to Google Images Home" alt="Go to Google Images Home" width=72 height=24>
            </a>
            <form style="display:inline" method=GET action="/images">
              <input type=hidden name=gbv value="2">
              <input type=hidden name=hl value="en">
              <input type=hidden name=sa value="3">&nbsp;
              <input type=text name=q size=41 maxlength=2048 value="test" title="Search images">&nbsp;
              <input type=submit name="btnG" style="margin:0 2px 0 5px" value="Search images">
            </form>&nbsp;
            <a id=b2r href="/images?q=test&amp;gbv=2&amp;hl=en" onclick="if(history.length>1){history.back();return false}return true;" style="vertical-align:40%">Back to image results
            </a>
          </div>
          <table cellpadding=0 cellspacing=0 width="100%">
            <tr>
              <td>
                <a href="http://people.mozilla.com/~cbeard/labs/images/test-pilot.png" id=thumbnail>
                  <img src="http://tbn0.google.com/images?q=tbn:KLm4Rocmahp8wM:http://people.mozilla.com/~cbeard/labs/images/test-pilot.png" width=88 height=80 style="float:left;margin:10px 10px 0;border:1px solid" alt="See full size image">
                </a>
                <div id=details>
                  <p style="margin-bottom:4px">
                    <a href="http://people.mozilla.com/~cbeard/labs/images/test-pilot.png" style="font-size:115%;font-weight:bold">See full size image
                    </a>
                  </p>
                  <p>360 x 327 - 110k - png - 
                    <span style="color:green">people.mozilla.com/.../
                      <wbr>images/test-pilot.png
                    </span>
                  </p>
                  <p>Image may be subject to copyright.
                  </p>
                  <p>Below is the image at: 
                    <a href="http://labs.mozilla.com/tag/testpilot/">labs.mozilla.com/
                      <wbr>tag/testpilot/
                    </a>
                  </p>
                </div>
              <td align=right valign=bottom>
                <div style="padding-right:8px">
                  <a href="http://labs.mozilla.com/tag/testpilot/" style="text-decoration:none">
                    <u>Remove frame
                    </u>&nbsp;
                    <img src=/images/isr_c.gif style="margin-bottom:-2px" height=15 width=15 alt="">
                  </a>
                </div>
          </table>
          <div id=outer-separator>
            <div id=separator>
            </div>
          </div>
      <tr>
        <td>
          <iframe scrolling=auto id=rf src="http://labs.mozilla.com/tag/testpilot/" frameborder=0 allowtransparency=true style="width:100%;height:100%">
          </iframe>
    </table>
  </body>
<script>var a = document.getElementById('rf');a && a.contentWindow && a.contentWindow.focus();</script>
</html>
于 2009-07-30T13:41:00.883 に答える
0

これは一種の焼き直しですが、次のようになります。

  1. 2 行のテーブルを作成します。1 行がツールバーになります。すべてのコンテンツをそこに置きます。
  2. もう一方の行に iframe を作成します。iframe は外部サイトを指す必要があります。

したがって、 <body> タグは次のようになります。

<table height="100%" width="100%">
 <tr height="1%"><td>Toolbar of some sort</td></tr>
 <tr><td>
  <iframe scrolling=auto id=rf src="http://server/page"
  frameborder=0 allowtransparency=true style="width:100%;height:100%">
 </td></tr>
</table>

ツールバーが 1% であることのポイントは、フットプリントをできるだけ小さくすることです。それ以外の場合、ツールバーは iframe と同じ量を取得します。

于 2009-08-07T15:16:06.440 に答える