次の javascript/jquery コードを使用します。
$embedDiv.oembed(url,{ //url is the actual url of the embedded media
allowedProviders: ["flickr", "youtube", "vimeo"],
embedMethod: "fill",
maxWidth: frmWidth,
maxHeight: frmHeight,
afterEmbed: function(oembedData) {
$flagText.val("1");
$url.removeData('thumbnail_url');
},
onProviderNotFound: function(oembedData){
$embedDiv.html("");
}
});
私のページに次の出力が表示されます。
<div class="embed">
<iframe src="(some url)" width="425" height="349" allowfullscreen="true" allowscriptaccess="always" scrolling="no" frameborder="0" style="max-height: 125px; max-width: 222px;"></iframe>
</div>
少なくとも、問題のメディア URL が適切であれば。それにもかかわらず何かに解決される悪い URL を使用している場合 (認証スキームによって保護されているメディアへのリンクなど)、次のような結果が得られます。
<div class="embed">
<a href="(some url)">undefined</a>
</div>
アンカー タグが存在してもかまいませんがundefined
、メディアの代わりに表示されるため、非常に望ましくありません。div にウォッチ式を配置することで、oembed へのコールバックがこれを行っていることが明確にわかります。oembed がこのテキストをアンカー タグに配置したり、最初にアンカー タグを配置したりしないようにする方法を探しています。
後で戻って削除するだけでは機能しないことに注意してください。これは非同期コールバックであるため、いつ呼び出されるかわかりません。避けるか、何とか隠すしかありません。