0

我有一个 ASP.Net MVC 站点,它使用CEEBOX在弹出窗口中显示 youtube 视频。

当视频窗口弹出时,我在 IE9 中得到以下异常:

行:1 错误:无法获取属性“SetReturnValue”的值:对象为空或未定义

如果我尝试使用调试器,我可以看到异常发生在类似于{Formatting is mine}的部分中:

try {
    document.getElementById("")
            .SetReturnValue(__flash__toXML(document.location.href.toString()));
} 
catch (e) {
    document.getElementById("").SetReturnValue("<undefined/>"); 
}

触发弹出窗口的锚点的标记是:

<a class="thickbox" rel="width:640 height:385" 
  href="http://www.youtube.com/watch?v=xxxxxxxxx" >
  <span style="background-color: White; position: relative; outline-style: none; ">
    <span class="cliplarge" >
      <img src="http://zzz.zzz.com/xxxx.jpg" 
           style="height: 275px; width: 418px; margin-bottom: 0px; margin-top: -35px; "
           alt="Test" title="" />
    </span>
    <div style="z-index:40;position:relative;height:100px;width:100px;top:-140px;left:140px;">
        <img src="<%: Url.Content("~/Content/VideoPlay.png") %>" />
    </div>
  </span>
</a>
4

1 回答 1

2

问题原来与 URL 的形式有关:

格式为http://www.youtube.com/watch?v=xxxxxx的URL 旨在直接显示在 youtube 网站上。

而表单中的 URL:http://www.youtube.com/v/xxxxxx 会导致使用全屏播放器,该播放器将显示在任何框架中……如果您将其放在浏览器 URL 中,它将接管完整浏览器窗口的屏幕。

第二种形式似乎更适合弹出窗口,并且没有出现异常。

于 2012-08-22T08:05:27.523 回答