我正在使用以前的脚本来替换Quicktime视频。
原始脚本使用按钮加载其他视频的URL,但我想使用简单的链接。这是我对javascript非常有限的知识让我陷入困境的地方。
我想我可以在此代码中将“ .value ”更改为“ .href ”:
function loadVideo() {
movie.loadURL( document.getElementById('movie-url').value );
readyInitialized = false;
}
但视频会在另一个窗口中打开。
我的链接如下:
<a id="movie-url" href="http://www.fixxed.com/test/test/media/Kodak_FashionShow.mov" onclick="loadVideo(); return false;" rel="nofollow">Second Video</a><br />
<a id="movie-url" href="http://www.fixxed.com/test/test/media/doritos-day.mov" onclick="loadVideo(); return false;" rel="nofollow">Frist Video</a>
点击上面的任何一个链接只会触发:
<input type="text" id="movie-url" value="http://mirrors.creativecommons.org/movingimages/Building_On_The_Past.mov" />
HTML文档和javascript文件都包含类似的javascript代码,如果没有其他代码将无法工作(我不知道为什么,我只想使用它一次) HTML:
function loadVideo() {
movie.loadURL( document.getElementById('movie-url').value );
readyInitialized = false;
}
javascript文件:
pfQuicktime.prototype.loadURL = function() {
if (this.movie) {
var url = document.getElementById('movie-url').value;
this.movie.SetURL(url);
this.movie.SetControllerVisible(false);
}
}
可以找到一个工作示例HERE
答案 0 :(得分:1)
如果您想要元素的href,那么您将需要使用getAttribute('href')
:
function loadVideo() {
movie.loadURL( document.getElementById('movie-url').getAttribute('href'));
readyInitialized = false;
}
正如Alnitak指出的那样,您不能在页面上多次使用ID。
答案 1 :(得分:1)
你有太多的元素(即不止一个)具有相同的ID。
为每个元素提供自己的ID,并在事件处理程序中使用this
来引用当前元素,以便您可以提取其href
:
<a id="movie1" href="http://..../"
onclick="loadVideo(this);" rel="nofollow"">First</a><br />
<a id="movie2" href="http://..../"
onclick="loadVideo(this);" rel="nofollow">Second</a>
<script>
function loadVideo() {
movie.loadURL(this.href);
readyInitialized = false;
return false;
}
// this _may_ allow you to supply your own URL
pfQuicktime.prototype.loadURL = function(url) {
if (this.movie) {
this.movie.SetURL(url);
this.movie.SetControllerVisible(false);
}
}
</script>
(FWIW,我通常不建议使用DOM0内联事件处理程序,但在这种情况下似乎很方便)。