如果URL包含,则交换范围内容

时间:2015-06-18 00:07:31

标签: javascript html

我需要使用一个包含唯一网址的网页在iFrame中交换网址(YouTube播放列表)。

我有一些医生的视频,我已将其设置为播放列表。我们希望将具有唯一网址的Adword广告系列投放到单个网页,并且嵌入式IFrame(YouTube播放列表)中的网址会被换掉。我已经弄清楚如何定位播放列表中的唯一视频,但我需要更换嵌入的网址,以便播放正确的视频来支持广告。所以......

Adword广告系列目标医疗保健主题1 = ourwebsite.org/ourpage.aspx

Adword广告系列目标医疗保健主题3 = ourwebsite.org/ourpage.aspx#video3

我原来的HTML就是这个。

<script> 
if (window.location.href.indexOf("video3") != -1) {

document.getElementById("video").innerHTML = "<iframe width="320" height="180" src="https://www.youtube.com/embed/Q8msNGWLdwI?list=PLnVpR1DYS2MHt8Ormx_CETTIy3cfjtMEU" frameborder="0"></iframe>";

}
</script>

我添加了脚本,希望它能交换span id =&#34; video&#34;的内容。

ourwebsite.org/ourpage.aspx#video3

我正在使用的网址中包含一个锚点,就像这样。

{{1}}

1 个答案:

答案 0 :(得分:1)

这是一种更简单的方法,可以达到我相信你想要的效果。

定义一个对象,该对象包含与各自哈希目标关联的所有视频位置。

如果存在哈希目标并且哈希目标与对象中的哈希目标匹配,那么我们将更改iframe的源。

您实际上不必更改iframe的html。

var videos = {
    '#video1': '//youtube.com/embed/video1ID',
    '#video2': '//youtube.com/embed/video2ID',
    '#video3': '//youtube.com/embed/video3ID'
}
if (window.location.hash && videos[window.location.hash]) {
     document.querySelector("#video iframe").src = videos[window.location.hash];
}

另请注意,如果您将id分配给iframe本身,那么您可以使用

更轻松地选择它
document.getElementById('videoIframe').src = videos[window.location.hash];