我有一个 MVC 应用程序。主视图将有一个带有录音列表的网格。每个录音旁边都有一个播放按钮。实际上,播放按钮是一个 ActionLink。在该 ActionLink 的 OnClick 事件上,我在 JQuery 对话框中打开另一个视图,该视图具有 Windows Media Player。OnClick 事件在 Javascript 中定义(参见下面的代码)。问题是当我关闭对话框窗口媒体播放器时继续播放录音!我试图删除媒体播放器对象 $(#mediaplayer).remove(),即使它已被删除但仍在播放。我试图将整个 Div 的 InnerHtml 设置为“”,Div 被删除但媒体播放器仍在播放。唯一对我有用但不是我想要的解决方案是在对话框的关闭事件中执行 window.location.reload() ,它将重新加载父页面我不这样做的东西' 不想这样做,因为如果用户在 Grid 的第二页上,它会将他带到第一页。任何人都可以帮忙吗?
@Html.ActionLink("Play", "blablabla", new { controller = "Default", @url = MyUrl }, new { @class = "button" })
<script type="text/javascript">
$(document).on("click", ".button", function (e) {
var url = $(this).attr('href');
var dialog1 = $('<div id="divPlayer" style="display:none"></div>').appendTo('body');
dialog1.load(url, {},
function (responseText, textStatus, XMLHttpRequest) {
dialog1.dialog({
close: function (event, ui) {
dialog1.empty();
dialog1.dialog('destroy').remove();
},
draggable: true,
width: 340,
height: 105,
resizable: false,
closeOnEscape: true,
modal: true,
});
});
dialog1.unload(url, {});
return false;
});
</script>
这是媒体播放器的嵌入代码
<object width="320" height="40"
classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
id="mediaplayer1" style="border:none">
<param name="Filename" value="@Model.URL">
<param name="AutoStart" value="True">
<param name="ShowControls" value="True">
<param name="ShowStatusBar" value="False">
<param name="ShowDisplay" value="False">
<param name="AutoRewind" value="True">
<embed id='altMediaPlayer' type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/MediaPlayer/"
width="320" height="40" src="@Model.URL"
filename="@Model.URL" autostart="True"
showcontrols="True" showstatusbar="False"
showdisplay="False" autorewind="True">
</embed>
</object>