У меня есть автономный файл SVG, который отображается без проблем.Он включает в себя некоторые встроенные сценарии и ссылки на 2 других сценария.Встроенный скрипт вызывает функцию инициализации в одном из других скриптов, и это работает во всех больших браузерах:
<svg ...>
<script type="application/ecmascript"><![CDATA[
...
do_init_in_foo1();
...
]]></script>
<script type="application/ecmascript" xlink:href="foo1.js"></script>
<script type="application/ecmascript" xlink:href="foo2.js"></script>
</svg>
Хорошо, вот проблема: когда я вместо этого динамически загружаю этот скрипт через Ajax, 'do_init_in_foo1«больше не видно.Он по-прежнему работает в Opera, если ссылка 'foo1.js' появляется над вызовом init, и работает в более старых версиях F / F, но в других браузерах не работает вообще, независимо от того, как я расположил скрипт 3разделы.Я получаю сообщение об ошибке: ReferenceError: do_init_in_foo1 is not defined
.
Что такое динамическая загрузка Ajax, которая изменяет видимость?Есть ли способ обойти это?
Один из вариантов - переместить эту строку:
<script type="application/ecmascript" xlink:href="foo1.js"></script>
в родительский документ, поскольку она не изменяется при различных вызовах Ajax.Однако, если я это сделаю, браузер пожалуется на перемещенный тег скрипта (Namespace prefix xlink for href on script is not defined
).Я думаю, что мне нужно было бы обернуть тег script в тег svg, чтобы исправить это, с атрибутом xmlns: xlink, но тогда это дало бы мне два svgs верхнего уровня, что было бы (я думаю) проблемой.
Спасибо.