Если вы хотите разделять функцию на две никаких проблем нет. Но если мы хотим сделать все в одной: подгрузить библиотеку и выполнить один из её методов, может возникнуть проблема. Метод может просто не успеть подгрузиться. Поэтому я и делаю синхронный запрос - подгружаю данные, а затем пытаюсь сделать доступными функции библиотеки.
С iframe конечно моя промашка). Вот рабочий код:
Код:
|
<body>
<script>
function addScript(url) {
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
};
};
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
};
xmlhttp.open('GET', url, false);
xmlhttp.send(null);
if (navigator.appName=="Microsoft Internet Explorer") {
window.execScript(xmlhttp.responseText);
} else {
var obj = document.createElement('script');
var textScr = document.createTextNode(xmlhttp.responseText);
document.body.appendChild(obj);
obj.appendChild(textScr);
};
};
addScript('script.js');
some_func();
</script>
</body> |
Содержимое script.js:
Код:
|
function some_func() {
alert('some func');
};
function some_func2() {
alert('some func2');
};
|
Совместимость: IE5+, Opera9+, Firefox.