シナリオ: Web ページに別の Web サイト (yahoo.com など) へのリンクがあり、ユーザーがそのリンクをクリックします。
まったく別のドメインにあるにもかかわらず、Javascript 関数を呼び出して HTML/CSS をページにロードできますか? Yahoo である種のサイドバーをレンダリングするようなものですか?
そうでない場合(そうであると思います)、これを行う他の方法はありますか?
シナリオ: Web ページに別の Web サイト (yahoo.com など) へのリンクがあり、ユーザーがそのリンクをクリックします。
まったく別のドメインにあるにもかかわらず、Javascript 関数を呼び出して HTML/CSS をページにロードできますか? Yahoo である種のサイドバーをレンダリングするようなものですか?
そうでない場合(そうであると思います)、これを行う他の方法はありますか?
短い答えは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;
}