I'm using VS2008Pro with Master pages. On a child page, I have a modalPopupExtender that calls a panel with an embedded Google video. Everything works great - the popup appears with the video, background greyed. But, when I close the panel, the audio keeps playing in IE 7 & 8. Netscape is fine. I went and tried what Google recommended, but it still continues. Any ideas?
Code:
'//In child page header
<script src="../swfObject/swfobject.js" type="text/javascript"></script>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "myytplayer", name: "myytplayer" };
swfobject.embedSWF("http://www.youtube.com/e/GtHDrLngXlc?enablejsapi=1&playerapiid=myytplayer", "myytplayer", "425", "344", "8", null, null, params, atts);
function stopVideo() {
var playerObj = document.getElementById("myytplayer");
if (playerObj) {
playerObj.stopVideo();
playerObj.clearVideo();
}
}
</script>
'//in child page html
<asp:ImageButton ID="imgBtnAmanda" runat="server" ImageAlign="Middle" ImageUrl="~/media/quality/devMedAmanda.jpg" />
<asp:Panel ID="pnlAmanda" runat="server" CssClass="modalPopup">
<asp:ImageButton ID="imgBtnCloseAmanda" runat="server" ImageUrl="~/images/icon-x.gif" ImageAlign="Right" /><br /><p align="center">
<div id="myytplayer" name="myytplayer" style="width:425px; height:344px;">You need Flash player 8+ and JavaScript enabled to view this video.</div>
<br /><br />Amanda Levesque's performance of "To Dream the Impossible Dream"</p></asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="modalAmanda" runat="server" TargetControlID="imgBtnAmanda" PopupControlID="pnlAmanda" BackgroundCssClass="modalBackground"
CancelControlID="imgBtnCloseAmanda" OkControlID="imgBtnCloseAmanda" OnOkScript="stopVideo;" onCancelScript="stopVideo;" />
</p>
Matt Saltz came up with this solution- loading another page in the modal. Thus, when the modal/page is closed, the audio stops in IE. Many thanks, Matt.
Code:
test.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<script type="text/javascript" language="javascript">
function ytPopUp(videoID) {
var frameYT = document.getElementById('frmYT');
frameYT.src = "YouTubeVideo.aspx?VideoID=" + videoID;
var modalPopupBehavior = $find('modalYouTubeBehaviorID');
modalPopupBehavior.show();
}
function ytClose() {
document.getElementById('frmYT').contentWindow.ytStop();
var modalPopupBehavior = $find('modalYouTubeBehaviorID');
modalPopupBehavior.hide();
}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<h3>Videos</h3>
<!-- The OnClientClick property of the below ImageButton controls which video is loaded.
To have another video make another Image and set it OnClientClick (Change the youtube video id) -->
<asp:ImageButton ID="imgBtnAmanda" runat="server" ImageAlign="Middle" ImageUrl="http://www.mahec.net/media/quality/devMedAmanda.jpg" OnClientClick="ytPopUp('GtHDrLngXlc');return false;" />
<!-- The below panel, button, and modal is to be used for all youtube videos (do not repeat and/or rename) -->
<asp:Panel ID="pnlYoutube" runat="server" CssClass="modalPopup">
<asp:ImageButton ImageAlign="Right" ID="imgBtnCloseYouTube" runat="server" ImageUrl="http://www.mahec.net/images/icon-x.gif" OnClientClick="ytClose(); return false;" />
<iframe id="frmYT" name="frmYT" align="middle" runat="server" frameborder="0" height="354" width="435" scrolling="no"></iframe>
</asp:Panel>
<asp:Button ID="btnMpeTarget" runat="server" style="visibility:hidden" />
<ajaxToolkit:ModalPopupExtender ID="modalYouTube" BehaviorID="modalYouTubeBehaviorID" runat="server" TargetControlID="btnMpeTarget" PopupControlID="pnlYoutube" BackgroundCssClass="modalBackground"/>
youTubeVideo.aspx
<script type="text/javascript">
function ytClose() {
document.getElementById('frmYT').contentWindow.ytStop();
var modalPopupBehavior = $find('mpeYouTubeVideosBehavior');
modalPopupBehavior.hide();
}
</script>
</head>
<body>
<form id="frmYT" runat="server">
<div id="myytplayer">You need Flash player 8+ and JavaScript enabled to view this video.</div>
</form>
Bookmarks