У меня есть HTML-страница, встроенная в .svg. Я написал большую часть логики в java-скрипте и хотел бы использовать один и тот же файл .js между файлами html и .svg:
Например: у меня есть следующее в mylogic.js:
var xmlDoc = null;
function loadXmlDoc() {
xmlDoc = new XmlDoc.....
}
function onHtmlLoad() {
loadXmlDoc();
}
function onSvgLoad() {
xmlDoc.getElemementById(...
}`
и в HTML, я получил
<html>
<script src="mylogic.js"></script>
<body onLoad='onHtmlLoad();">
...
<object id='svgid' data='sample.svg'.../>
...
</body>
</html>
и java-скрипт, включенный в html-страницу, не виден во встроенном файле .svg, поэтому я должен снова включить их, как ...
<svg...onload="window.onSvgLoad();">
<script xlink:href="mylogic.js></script>
</svg>
, поскольку я дважды включил файл .js, я получаю xmlDoc как ноль внутри функции onSvgLoad (). Я считаю, что должен быть способ загрузить тот же экземпляр xmlDoc из html в svg. но я не понимаю ..?
В качестве альтернативы я попытался не включать файл .js в svg, вместо этого попытался изменить onload на onload = "window.top.onSvgLoad ();" ; затем onload = "window.parent.onSvgLoad ();" но все равно не сработало!
* Обратите внимание, что я использую IE9 с его собственной поддержкой Html5.