这是对原帖的编辑,现在我更好地理解了这个问题. 现在有了源代码!
在IE中,如果身体(或其他HTML DIV具有焦点),然后你按键和点击闪光灯在同一时间,然后松开...... keyUp事件是从来没有发射.它不是在javascript或flash中触发的.这个keyup活动在哪里?
这是你获得的事件触发顺序:
后续的keydown和keyup事件由flash捕获,但是初始的keyUp永远不会被触发.. 我需要那个密钥!
什么行不通:
这是html/javascript:
<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="swfobject.js"></script>
<script>
function ic( evt )
{ Event.observe( $("f1"), 'keyup', onKeyHandler.bindAsEventListener( this, "f1Up" ) );
Event.observe( $("f2"), 'keyup', onKeyHandler.bindAsEventListener( this, "f2Up" ) );
Event.observe( document, 'keyup', onKeyHandler.bindAsEventListener( this, "docUp" ) );
Event.observe( $("body"), 'keyup', onKeyHandler.bindAsEventListener( this, "bodyUp" ) );
Event.observe( window, 'keyup', onKeyHandler.bindAsEventListener( this, "windowUp" ) );
Event.observe( $("f1"), …Run Code Online (Sandbox Code Playgroud) 在调查报告的网站加载缓慢的问题时,我遇到了一个问题,我注意到(通过firebug)我的Flash文件加载了两次.
经过一番调查后,我将其跟踪到一个firefox错误以及SWFObject 2.0的使用情况.
现在,我注意到有人提到你可以通过以下方式解决问题:
仅供参考,如果您是网页开发人员,那么让您的网页使用FF3的简单解决方法是延迟访问任何插件,直到您的网页完全加载为止.一种简单的方法是使用window.setTimeout将超时为零的插件脚本代码安排在所有挂起的浏览器事件之后运行.
老实说,我不知道他们在说什么,我希望有人可以给我一个可行的代码示例.
你知道如何使这项工作和代码看起来像什么?任何帮助将非常感谢!
如何防止Javascript菜单隐藏在Flash Video(SWFObject)下.
我正在使用Open Flash Chart,图表在我的php购物车中显示得很好,但我的javascript菜单隐藏在Flash Chart后面.
如何纠正这个问题?
这是我的脚本代码:
<script type="text/javascript">
swfobject.embedSWF(
"open-flash-chart.swf", "Dashboard_Chart",
"800", "400", "9.0.0", "expressInstall.swf",
{"data-file":"ofc-chart.php"} );
</script>
Run Code Online (Sandbox Code Playgroud)
更新(已解决):
我找到了解决方案.
这是我的新代码工作,菜单显示正常.
<script type="text/javascript">
var flashvars = {};
var params = {};
params.wmode = "opaque";
var attributes = {};
swfobject.embedSWF("../swf/open-flash-chart.swf", "Dashboard_Chart", "760", "300", "9.0.0", "expressInstall.swf", {"data-file":"ofc-chart.php"}, flashvars, params, attributes );
</script>
Run Code Online (Sandbox Code Playgroud)
嗨!
我正在构建Chrome扩展程序,我需要在后台页面中嵌入SWFobject.
一切正常,除了SWFobject和eventListeners的JavaScript控件.
我的猜测是它与跨域策略有关,因为在Web服务器上测试页面时一切正常.
无论如何,这是一个片段:
在主页面中:
var playerView = chrome.extension.getBackgroundPage();
$('#playerPause').click(function(){
playerView.playerPause();
});
Run Code Online (Sandbox Code Playgroud)
在后台:
function playerPause() {
if (postData[nowPlaying].provider == 'youtube' ) {
player.pauseVideo();
}
else if (postData[nowPlaying].provider == 'soundcloud' ) {
player.api_pause();
};
}
Run Code Online (Sandbox Code Playgroud)
和eventListeners:
soundcloud.addEventListener('onMediaEnd', playerNext);
function onYouTubePlayerReady(player) {
player.addEventListener("onStateChange", "function(state){ if(state == 0) { playerNext(); } }");
}
Run Code Online (Sandbox Code Playgroud)
它在控制台中抛出
"未捕获的TypeError:对象#没有方法'pauseVideo'"
因为Youtube嵌入了Soundcloud.
此外,SWFobject像这样嵌入(并且有效):
function loadTrack (id) {
if(postData[id].provider == 'youtube') {
swfobject.embedSWF(
"http://www.youtube.com/e/" + postData[id].url + "?enablejsapi=1&playerapiid=player",
"player",
"1",
"1",
"8",
null, …Run Code Online (Sandbox Code Playgroud) youtube google-chrome swfobject google-chrome-extension soundcloud
我正在使用SWFobject从slideshare实现播放器.
使用embedSWF方法获取玩家:
swfobject.embedSWF("http://static.slidesharecdn.com/swf/doc_player.swf", "player", "700", "392", "8", null, flashvars, params, atts);
Run Code Online (Sandbox Code Playgroud)
它正确地给了我播放器,但现在我想从播放器自定义选项,即我不想要放大,缩小,幻灯片放映等目前播放器上的选项.
我可以自定义吗?
如何使用SWFObject专门定位嵌入的flash元素?使用绝对定位和顶部和底部设置移动它的容器DIV似乎不起作用.
谢谢.
我有一个带有嵌入式Flash文件的简单html站点,并且在其上使用了SWFobject.
这个网站是iframe的src.如果我打开带有iframe的网站,控制台告诉我......
Unsafe JavaScript attempt to access frame with URL file:///experiment/iframe-
test/index.html from frame with URL http://localhost.lan/embed/GYZA. Domains,
protocols and ports must match. -> swfobject.js
Run Code Online (Sandbox Code Playgroud)
我想知道父窗口(其中包含iframe)与iframe中的swfobjet有什么关系?因此,如上所述,swfobject用于将flash嵌入到加载到iframe中的子页面上.该iframe-test/index.html网站刚刚......
<body>
<iframe src="http://localhost.lan/embed/GYZA" width="100%" height="100%" frameborder="0" allowfullscreen></iframe>
</body>
Run Code Online (Sandbox Code Playgroud)
… 在上面.而已.为什么我有unsafe javascript attempt here?
有什么想法吗?先感谢您.
更新:嗯,我刚认识到Youtube和Vimeo以及它们的嵌入式播放器都会发生这种情况.我正在使用Chrome控制台,Youtube和Vimeo也会出现同样的错误.
我试图通过以下javascript代码将swf文件嵌入页面(谷歌应用引擎页面):
<script type="text/javascript">
//This example uses dynamic publishing with swfObject. Login is handled in the swf
//Note we are passing in attribute object with a 'name' property that is same value as the 'id'. This is REQUIRED for Chrome/Mozilla browsers
swfobject.embedSWF("loader.swf", "flashContent", "640", "480", "10.2", null, null, null, {name:"flashContent"});
//REST OF THE CODE
</script>
Run Code Online (Sandbox Code Playgroud)
它在HTTP上正常工作,但内容不适用于HTTPS.我已经google了很多,但我没有找到解决方案.我需要使用HTTPS for Secure Canvas URL来创建facebook应用程序.正如您在下面的评论中所看到的,https适用于Safari,但不适用于Chrome.
任何想法将不胜感激.
我有许多部分flash内容的旧网站,我使用swfobjects库初始化.问题是Chrome甚至没有要求允许闪存,页面运行,因为它们没有任何闪存对象.我正在使用最新的Chrome Canary但在最新的Chrome中也有同样的问题.
示例站点有一个大的flash横幅,它是唯一有意义的内容:sahinkomur.com.tr
编辑:在git上找到一个解决方案:github.com/swfobject/swfobject/issues/57
if(window.chrome)
swfobject.ua.pv = [100, 0, 0];
swfobject.embedSWF(...);
Run Code Online (Sandbox Code Playgroud)