Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.05.2013, 02:56
Аватар для KomatoZ
Новичок на форуме
Отправить личное сообщение для KomatoZ Посмотреть профиль Найти все сообщения от KomatoZ
 
Регистрация: 01.05.2013
Сообщений: 6

Загрузка скрипта
Прошу помощи с косяком
есть файл со скриптом, допустим D:\Projects\JS\Script.js
его нужно загрузить в открытую в данный момент браузером произвольную страницу
в адресной строке прописываю скрипт:

javascript: var scriptElem = window.document.createElement ("SCRIPT"); scriptElem.type = "text\/javascript"; scriptElem.src = "file:\/\/localhost\/D:\/Projects\/JS\/Script.js"; window.document.body.appendChild (scriptElem); void (0);


при этом, если страница открыта с этого же компа (для теста), то всё нормально, но, если с внешнего сервера (yandex.ru, google.com, etc.), то выдаёт ошибку
Код:
[01.05.2013 22:57:21] Javascript - file://localhost/D:/Projects/JS/Script.js
Указанный в ссылке скрипт не загружен
т.е., если открыть яндекс и попытаться в его страницу загрузить скрипт, то он не загрузится, а если открыть какую-нибудь сохранённую себе на комп страницу, то всё нормально

как мне подсказали умные люди - это ограничения безопасности браузера.
но, если скрипт расшарить и в src указать путь к расшаренному ресурсу, абсолютно ничего не меняется.
тогда в чём косяк?

Последний раз редактировалось KomatoZ, 06.05.2013 в 20:37.
Ответить с цитированием
  #2 (permalink)  
Старый 06.05.2013, 08:46
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от KomatoZ
в чём косяк?
Ты сам ответил на свой вопрос, Карло... (с)
Сообщение от KomatoZ
это ограничения безопасности
Ответить с цитированием
  #3 (permalink)  
Старый 06.05.2013, 15:06
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

через http://localhost/path/to/file грузи(в Opera кажись и через file:// будет работать не помню)
Ответить с цитированием
  #4 (permalink)  
Старый 06.05.2013, 15:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

KomatoZ,
С локального диска загрузка любых файлов ограничена в браузерах, только открытыми страницами опять жа с текущего компа,
Для инет страниц необходимо расположение js файла на инет-ресурсе
Ответить с цитированием
  #5 (permalink)  
Старый 06.05.2013, 19:17
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

http://pastebin.com/1y8TpfDB

function loadScript(url, cb) {
    var d = document, 
        s = d.createElement('script');
    s.src = url;
    s.onload = cb;
    d.head.appendChild(s);
}

// по идеи скрипты загрузятся синхронно
function loadScripts(urls, cb) {
    loadScript( urls.shift(), function() {
        if (urls.length) {
            return loadScripts(urls, cb);
        }
        
        cb();
    } );
}


может пригодится
Ответить с цитированием
  #6 (permalink)  
Старый 06.05.2013, 20:13
Аватар для KomatoZ
Новичок на форуме
Отправить личное сообщение для KomatoZ Посмотреть профиль Найти все сообщения от KomatoZ
 
Регистрация: 01.05.2013
Сообщений: 6

Сообщение от ksa
Сообщение от KomatoZ
тогда в чём косяк?
Ты сам ответил на свой вопрос, Карло... (с)
Сообщение от KomatoZ
это ограничения безопасности
Сообщение от KomatoZ
но, если скрипт расшарить и в src указать путь к расшаренному ресурсу, абсолютно ничего не меняется.
текущий вопрос вот в чём

Сообщение от qwerty-клавиатура
через http://localhost/path/to/file грузи(в Opera кажись и через file:// будет работать не помню)
Сообщение от KomatoZ
scriptElem.src = "file:\/\/localhost\/D:\/Projects\/JS\/Script.js";
это была изначальная попытка. не работает
http:// без установленного сервера работать тоже не будет
но вообще, к локальным ресурсам пути через file:// работают. в любом браузере, не только в Опере

Сообщение от Deff
С локального диска загрузка любых файлов ограничена в браузерах, только открытыми страницами опять жа с текущего компа
Сообщение от KomatoZ
как мне подсказали умные люди - это ограничения безопасности браузера
Сообщение от Deff
Для инет страниц необходимо расположение js файла на инет-ресурсе
Сообщение от KomatoZ
но, если скрипт расшарить и в src указать путь к расшаренному ресурсу, абсолютно ничего не меняется.
расшаренный ресурс это разве не инет ресурс?

Сообщение от qwerty-клавиатура
http://pastebin.com/1y8TpfDB
function loadScript(url, cb) {
	var d = document,
		s = d.createElement('script');
	s.src = url;
	s.onload = cb;
	d.head.appendChild(s);
}
благодарю, но чем он, по большому счёту, отличается от
Сообщение от KomatoZ
javascript:
var scriptElem = window.document.createElement ("SCRIPT");
scriptElem.type = "text\/javascript";
scriptElem.src = "file:\/\/localhost\/D:\/Projects\/JS\/Script.js";
window.document.body.appendChild (scriptElem);
void (0);

Последний раз редактировалось KomatoZ, 06.05.2013 в 20:44.
Ответить с цитированием
  #7 (permalink)  
Старый 06.05.2013, 23:15
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

тебе и пытаются объяснить, что в соответствии с политикой безопасности, броузер НЕ МОЖЕТ ПОДКЛЮЧАТЬ СКРИПТЫ по протоколу file://, если хочешь подключить скрипт загрузи его себе на сайт, либо запусти сервер и подключи http://localhost/path/to/script.js. Мой код, там callback на script.onload вешается
Ответить с цитированием
  #8 (permalink)  
Старый 06.05.2013, 23:30
Аватар для KomatoZ
Новичок на форуме
Отправить личное сообщение для KomatoZ Посмотреть профиль Найти все сообщения от KomatoZ
 
Регистрация: 01.05.2013
Сообщений: 6

Сообщение от qwerty-клавиатура
НЕ МОЖЕТ ПОДКЛЮЧАТЬ СКРИПТЫ по протоколу file://
вообще? с какого перепугу?

Сообщение от qwerty-клавиатура
Мой код, там callback на script.onload вешается
ну onload срабатывает после загрузки и по данной теме он, по моему, ни к чему...
Ответить с цитированием
  #9 (permalink)  
Старый 06.05.2013, 23:46
Аспирант
Отправить личное сообщение для edison Посмотреть профиль Найти все сообщения от edison
 
Регистрация: 01.04.2013
Сообщений: 58

Цитата:
вообще? с какого перепугу?
с такого, чтобы люди не свиснули файлы с твоего компьютера, или компьютера к которому ты имеешь доступ
Ответить с цитированием
  #10 (permalink)  
Старый 09.05.2013, 02:14
Аватар для KomatoZ
Новичок на форуме
Отправить личное сообщение для KomatoZ Посмотреть профиль Найти все сообщения от KomatoZ
 
Регистрация: 01.05.2013
Сообщений: 6

хммм... и как же тогда быть?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка скрипта в DIV KOTShalun AJAX и COMET 12 18.03.2013 16:03
Загрузка скрипта по ошибке 404 ikarushka Общие вопросы Javascript 10 28.11.2010 04:26
Загрузка скрипта в блок [MI_nor] Events/DOM/Window 2 04.10.2010 14:24
Загрузка скрипта с локального комьютера uncher AJAX и COMET 49 04.02.2009 23:12
Загрузка внешнего скрипта... viliv Общие вопросы Javascript 26 26.01.2009 13:21