在SharePoint 2007之前的版本中,我们可以像在普通的html页面里一样,在SharePoint页面中插入Flash文件。但是,当我在2010里做相同的工作时却发现始终是提示“没有加载影片”。
通常我们是使用<Object>标记:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" WIDTH="550" HEIGHT="400" id="myMovieName"> <PARAM NAME=movie VALUE="test.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="test.swf" quality=high bgcolor=#FFFFFF WIDTH="550" HEIGHT="400" NAME="myMovieName" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"> </EMBED> </OBJECT>
但是,这段代码在SharePoint Designer中显示时,就会变成下面这样:
原因是网页编辑器的XHTML 1.0 Strict检查。
但是这个会是导致错误的原因吗?
于是,我就换了一种javascript动态生成代码的方法。 这里使用“SWFObject”。它是利用Javascript 插入flash的一个开源库。它的优点很多。首先是和其他js库一样,可以使代码简洁。据说还不会出现IE6下的“单击此处以激活控件”的提示,并且能通过W3C验证。通过SWFObject在SharePoint Designer中插入swf文件后网页编辑器中显示好看多了:
但是在浏览器中查看后,发现问题依旧。看来SharePoint 服务器端的限制并不在此。
最后,在msdn官方论坛里找到了解决办法。原来是在Web应用程序这一层的设置中有所限制。
步骤
1、打开管理中心,Web应用程序管理,高亮选中我们的SharePoint页面所在的Web应用程序。
2、点击功能区中“管理”分组下的“常规设置”
3、在打开的Web应用程序常规设置对话框中,滚到到页面中部,找到“浏览器文件处理程序”,将其改为“许可”
3、点击确定。
关闭浏览器,重新打开嵌入swf文件的的SharePoint页面。发现Flash终于可以正常显示了。
总结
最后问题的解决虽然与代码无关,但是找到了SWFObject这种简洁并符合标准的flash加载方法,还是很有收获的。
参考资料