(Rails)需要一些javascript帮助

时间:2009-07-12 03:08:13

标签: ruby-on-rails xml charts flash

我目前有一个应用程序调用使用JS创建并显示来自各种对象数据的图表。但是,我遇到了一些严重的问题。有人可以解释为什么下面的代码在静态插入页面时工作得很好,但是当通过rjs“page.replace_html my_div_id”使用时,它会删除页面上的 Everything ELSE

    <script language="JavaScript" type="text/javascript">
        <!--
        if (AC_FL_RunContent == 0 || DetectFlashVer == 0) {
            alert("This page requires AC_RunActiveContent.js.");
        } else {
            var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
            if(hasRightVersion) { 
                AC_FL_RunContent(
                    'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0',
                    'width', '800',
                    'height', '500',
                    'scale', 'noscale',
                    'salign', 'TL',
                    'bgcolor', '#777788',
                    'wmode', 'opaque',
                    'movie', 'charts',
                    'src', 'charts',
                    'FlashVars', 'library_path=xmlswfitems/charts_library&xml_source=xmlcharts/M1 Building One', 
                    'id', 'my_chart',
                    'name', 'M1 Building One',
                    'menu', 'true',
                    'allowFullScreen', 'true',
                    'allowScriptAccess','sameDomain',
                    'quality', 'high',
                    'align', 'middle',
                    'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
                    'play', 'true',
                    'devicefont', 'false'
                    ); 
            } else { 
                var alternateContent = 'This content requires the Adobe Flash Player. '
                + '<u><a href=http://www.macromedia.com/go/getflash/>Get Flash</a></u>.';
                document.write(alternateContent); 
            }
        }
        // -->
    </script>

...而且,IE完全失败了。我唯一的潜在客户来自Safari(“无与伦比的嵌入标签”),Firefox(浏览器假装图表从未加载,即使它有),IE(非特定prototype.js错误)。仅供参考,我正在使用XML / SWF图表。我正在从头开始编写此代码,因为现有/过时的SWFCharts库无法满足此要求,因此请不要建议涉及该特定库的解决方案。

最佳。

2 个答案:

答案 0 :(得分:1)

使用SWFObject之类的标准库来嵌入您的闪光灯。它会照顾你所有的crossbrowser怪癖,如果用户没有flash,你可以使用常规html进行静态和动态发布。

答案 1 :(得分:0)

AC_FL_RunContent使用document.write生成<object> / <embed>标记,如果在页面完全加载后调用,则替换页面的全部内容。

您可能需要使用SWFObject;据我所知,它不使用document.write所以它随时都可以使用。