Показать сообщение отдельно
  #10 (permalink)  
Старый 20.01.2010, 13:55
Новичок на форуме
Отправить личное сообщение для is5201 Посмотреть профиль Найти все сообщения от is5201
 
Регистрация: 20.01.2010
Сообщений: 3

Если вы хотите разделять функцию на две никаких проблем нет. Но если мы хотим сделать все в одной: подгрузить библиотеку и выполнить один из её методов, может возникнуть проблема. Метод может просто не успеть подгрузиться. Поэтому я и делаю синхронный запрос - подгружаю данные, а затем пытаюсь сделать доступными функции библиотеки.
С 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.

Последний раз редактировалось is5201, 20.01.2010 в 14:15.
Ответить с цитированием