1

シナリオ: Web ページに別の Web サイト (yahoo.com など) へのリンクがあり、ユーザーがそのリンクをクリックします。

まったく別のドメインにあるにもかかわらず、Javascript 関数を呼び出して HTML/CSS をページにロードできますか? Yahoo である種のサイドバーをレンダリングするようなものですか?

そうでない場合(そうであると思います)、これを行う他の方法はありますか?

4

1 に答える 1

1

短い答えはNOです。できません。

もちろん、Blender が彼のコメントで提案したように、iframe をサイトに埋め込んで回避策を講じることはできますが、同じオリジン ポリシーにより、iframe 内にロードされたコンテンツが別のドメインから発信された場合、そのコンテンツへのアクセスは許可されません。これは CSS と JavaScript の両方に当てはまるため、コンテンツを変更することはできません。

つまり、コンテンツを iframe にロードして、自分のページに iframe の横に「サイドバー」を配置することもできます。「サイドバー」のリンクをクリックすると、その参照が iframe 内に読み込まれ、サイドバーが iframe のコンテンツに関連しているという「感覚」が生まれます。それは決して素晴らしい解決策ではありませんが、現時点で私が考えることができる最も近いものです.

アップデート

@kieran が彼のコメントで提供した例をいくつかのリンクで拡張したので、ここに私が上で説明したものの実際のを示します。

DOM は次のようになります。

<div class="sidebar">
    <a href="http://images.yahoo.com/" target="container">Yahoo images</a><br/>
    <a href="http://news.yahoo.com/" target="container">Yahoo news</a>
</div>
<iframe name="container" class="site-container" src="http://www.yahoo.com/" />

また、ニーズに合わせて変更できる CSS もいくつかあります。

.sidebar {
    width: 150px;
    float: left;
    background-color: #ccc;
    border-right: 1px solid #888;
}

.site-container {
    border: 0;
}

.sidebar,
.site-container {
    height: 300px;
}
于 2012-12-08T09:49:09.333 に答える