1

我正在使用以前的脚本来替换 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);
    }
}

可以在这里找到一个工作示例

4

2 回答 2

1

如果你想要元素的href,那么你会想要使用getAttribute('href')这样的:

function loadVideo() {
           movie.loadURL( document.getElementById('movie-url').getAttribute('href'));
           readyInitialized = false;
         }

同样正如 Alnitak 所指出的,您不能在页面上多次使用 ID。

于 2012-05-15T17:26:55.163 回答
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 内联事件处理程序,但在这种情况下似乎很方便)。

于 2012-05-15T17:27:10.653 回答