当用户点击视频的任意位置时,我正在尝试播放/暂停视频。问题是它正在IE 11中进行双击,对于所有其他浏览器,它只需单击左键即可完美运行。以下是我的代码。
var obj = "<object id=\"video\" onClick=\"clicked('video')\" data=\"data:application/x-silverlight-2,\" type=\"application/x-silverlight-2\" width=\"" + width1 + "%\" height=\"" + height1 + "%\">" +
"<param name=\"onLoad\" value=\"pluginLoad\" />" +
"<param name=\"source\" value=\"player.xap\"/>" +
"<param name=\"initParams\" value=\"sourceurl=" + url + "\" />" +
"</object>";
videoClicked方法如下&#34;
function clicked(ID) {
$("video").css("cursor", "pointer");
var mediaElementName = "mediaPlayer";
var host = document.getElementById(ID);
var s = host.content.findName(mediaElementName).CurrentState;
if (s == "Paused")
host.content.findName(mediaElementName).Play();
else
host.content.findName(mediaElementName).Pause();
}
我想让它只需单击一下即可。当我使用onmousedown时,它也在IE 11上完美运行。谁能告诉我我的代码有什么问题?
感谢。
答案 0 :(得分:1)
您不应该以html或自己的方式附加处理程序。您将深入了解这些跨浏览器问题。
试试这个:
$("#video").mouseup(function(e) {
if (e.which != 1) return false; // Stops all non-left-clicks
alert("clicked");
});
答案 1 :(得分:0)
它无法正常工作的原因是因为你没有将函数传递给onClick,而是调用了一个函数。要解决此问题,请从clicked返回一个函数,该函数将在id "video"
function clicked(ID) {
return function() {
$("video").css("cursor", "pointer");
var mediaElementName = "mediaPlayer";
var host = document.getElementById(ID);
var s = host.content.findName(mediaElementName).CurrentState;
if (s == "Paused")
host.content.findName(mediaElementName).Play();
else
host.content.findName(mediaElementName).Pause();
}
}
这假设在其他情况下会有除视频之外的ID,否则您只需硬编码该值而不返回函数。
或者如果这看起来很复杂,只需通过从事件对象中读取元素来获取元素的ID:
function clicked(e) {
var host = e.target;
var ID = host.id;
$("video").css("cursor", "pointer");
var mediaElementName = "mediaPlayer";
var s = host.content.findName(mediaElementName).CurrentState;
if (s == "Paused")
host.content.findName(mediaElementName).Play();
else
host.content.findName(mediaElementName).Pause();
}
但是你应该像这样调整你的HTML,将引用传递给点击的函数
var obj = "<object id=\"video\" onClick=\"clicked\" data=\"data:application/x-silverlight-2,\" type=\"application/x-silverlight-2\" width=\"" + width1 + "%\" height=\"" + height1 + "%\">" +
"<param name=\"onLoad\" value=\"pluginLoad\" />" +
"<param name=\"source\" value=\"player.xap\"/>" +
"<param name=\"initParams\" value=\"sourceurl=" + url + "\" />" +
"</object>";