(Rails) Нужна помощь JavaScript - PullRequest
0 голосов
/ 12 июля 2009

В настоящее время у меня есть приложение, которое вызывает создание и отображение диаграмм из данных различных объектов с использованием JS. Однако у меня возникли серьезные проблемы. Может кто-нибудь объяснить, почему следующий код работает просто отлично при статической вставке на страницу, но при использовании через rjs "page.replace_html my_div_id" он удаляет ВСЕ ЕЩЕ на странице:

    <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 Charts. Я пишу этот код с нуля, так как мне не нужны существующие / устаревшие библиотеки SWFCharts, поэтому, пожалуйста, не предлагайте решения для этой конкретной библиотеки.

Best.

Ответы [ 2 ]

1 голос
/ 12 июля 2009

Используйте стандартную библиотеку, такую ​​как SWFObject , чтобы встроить вашу флешку. Он позаботится обо всех причудах кроссбраузера и позволит вам выполнять как статическую, так и динамическую публикацию с обычным html, к которому можно обратиться, если у пользователя нет flash.

0 голосов
/ 13 июля 2009

AC_FL_RunContent использует document.write для генерации тегов <object> / <embed>, которые при вызове после полной загрузки страницы заменяют все содержимое страницы.

Возможно, вам понадобится SWFObject ; насколько я знаю, он не использует document.write, поэтому он должен работать в любое время.

...