Полезная информация

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№105-06-2005 02:16:49

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Не работают локальные ссылки на удалённых страницах

Пусть имеется html-страница, в которой есть ссылки типа <a href="file://d:\myfile.htm"> и рисунки типа <img src="file://d:\mypic.gif">. Если такуб страницу открывать на локальном  компьютере, то всё нормально, а вот если загружать её из интернета, то ссылки не открываются, картинки не показываются. Ну ссылки ещё ладно (может, это такая странная борьба за безопасность?) - можно самому написать обработчик OnClick, который их открывать будет, а вот с рисунками что сделать?

Отсутствует

 

№205-06-2005 12:29:11

Infant
   «»
 
Группа: Extensions
Откуда: Одесса
Зарегистрирован: 23-12-2004
Сообщений: 3671

Re: Не работают локальные ссылки на удалённых страницах

А слэши в разные стороны -- это такая фича?


Благодарю алфавит за любезно предоставленные буквы.

Отсутствует

 

№305-06-2005 18:06:35

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Re: Не работают локальные ссылки на удалённых страницах

Да ладно, слэши тут не сильно важны: я уже с разными вариантами пробовал, результат всегда одинаковый - на локальной странице работает, на удалённой нет...

:::: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.8) Gecko/20050511 Firefox/1.0.4

Отредактировано comp3v (05-06-2005 18:06:56)

Отсутствует

 

№405-06-2005 18:10:46

Viper
Участник
 
Группа: Extensions
Откуда: Нижний Новгород
Зарегистрирован: 24-12-2004
Сообщений: 2092

Re: Не работают локальные ссылки на удалённых страницах

comp3v  А на удалённой машине есть такие файлы?


---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")

Отсутствует

 

№505-06-2005 18:18:38

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Re: Не работают локальные ссылки на удалённых страницах

Нет, на сервере этих файлов, конечно, нет - в том-то и проблема: хочется, чтобы можно было ссылаться на локальные файлы.
Например, если моё расширение заменяет на загруженной страничке src="" с удалённого на локальный файл - он не отображается :(

Отсутствует

 

№605-06-2005 19:01:46

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: Не работают локальные ссылки на удалённых страницах

Выделить код

Код:

<script>
function hack() {
alert(document.getElementById("hack").contentDocument.documentElement.innerHTML);
}
</script>
<iframe id="hack" src="file://E:\pass.txt" onload="hack()"/>

И дальше я могу делать с содержимым этого iframe всё, что мне придёт в голову (например, могу отправить на определённый e-mail), если бы не одно "но":

Security Error:
Content at http://localhost/test.html may not load or link
to file:///E:/pass.txt.

Так что рекомедуется подумать над фразой "странная борьба за безопасность".

Отсутствует

 

№705-06-2005 20:25:21

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Re: Не работают локальные ссылки на удалённых страницах

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

И наконец, в чём виноваты рисунки? если мне в моём расширении надо позаменять рисунки на свои, локальные - неужели это тоже невозможно?

Отсутствует

 

№805-06-2005 22:54:10

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11770

Re: Не работают локальные ссылки на удалённых страницах

==> Проблемы с сайтами


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

№906-06-2005 00:14:15

Psilon
Участник
 
Группа: Extensions
Откуда: Город-герой Москва
Зарегистрирован: 07-02-2005
Сообщений: 1452

Re: Не работают локальные ссылки на удалённых страницах

comp3v
Твою тему просто переместили.


Мир, в котором человек больше не властен
Мир, принадлежащий машинам...

Отсутствует

 

№1006-06-2005 00:21:28

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Re: Не работают локальные ссылки на удалённых страницах

Хм... не очень понял, причём тут проблемы с сайтами - я был уверен, что это исключительно вопрос функционирования Firefox'а... Ну ладно - мне бы главное проблему решить, а в каком разделе помогут, уже не так важно :)

Отсутствует

 

№1106-06-2005 03:17:49

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: Не работают локальные ссылки на удалённых страницах

comp3v пишет:

Например, если моё расширение заменяет на загруженной страничке src="" с удалённого на локальный файл - он не отображается

Перерисовка страницы? (иногда такое бывает)

anyway, рекомендуется ещё раз подумать над вопросом безопасности.

Отредактировано Mash (06-06-2005 03:18:37)

Отсутствует

 

№1206-06-2005 09:22:56

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Re: Не работают локальные ссылки на удалённых страницах

Перерисовка страницы? (иногда такое бывает)

Что имеется в виду? что перерисовка не происходит, хотя должна? а от чего тогда это может зависеть? (напомню, что локально загруженные страницы отрисовываются нормально)

Выделить код

Код:

anyway, рекомендуется ещё раз подумать над вопросом безопасности.

так а как я тут ещё могу подумать??? я же говорю: расширениям, по идее, такие штуки должны позволяться! тем более в отношении рисунков - от них угроза сомнительная...

Отредактировано comp3v (06-06-2005 09:23:22)

Отсутствует

 

№1306-06-2005 10:17:11

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: Не работают локальные ссылки на удалённых страницах

Я так понимаю, что расширение ищет нечто на странице и меняет на заранее известную графику? Загоните её в "base64" и меняёте.

<IMG SRC="data:image/gif;base64,............... /> (RFC 2397)

Такое подойдёт?

Отсутствует

 

№1406-06-2005 10:23:09

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Re: Не работают локальные ссылки на удалённых страницах

Кажется, такое сработает, спасибо!
А при этом обязательно придётся в каждом случае всё содержимое gif'a напрямую вписывать? никак нельзя сослаться на файл?

Отсутствует

 

№1506-06-2005 11:36:47

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: Не работают локальные ссылки на удалённых страницах

А при этом обязательно придётся в каждом случае всё содержимое gif'a напрямую вписывать?

С пхп (или другим чем) знакомы?

Для расширения нет существенной разницы между ссылкой на файл и таким представлением.

Отсутствует

 

№1606-06-2005 11:44:26

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Re: Не работают локальные ссылки на удалённых страницах

Выделить код

Код:

С пхп (или другим чем) знакомы?

C php-то знаком - просто не хотелось бы сильно раздувать файл (если там этих картинок будет порядка сотни, то вставка содержимого в каждый src сильно увеличит размер)

Выделить код

Код:

Для расширения нет существенной разницы между ссылкой на файл и таким представлением.

Извиняюсь, я опять туплю - что имеется в виду?

Отсутствует

 

№1706-06-2005 18:09:27

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: Не работают локальные ссылки на удалённых страницах

ok, я несколько сумбурно отвечал в этом топике, давайте попробуем начать с чистого листа.

Например, если моё расширение заменяет на загруженной страничке src="" с удалённого на локальный файл - он не отображается

Я исхожу из того, что количество этих локальных файлов-картинок (иконок каких-нибудь, а не метровых *.bmp, я надеюсь), на которые будут меняться какие-то удалённые файлы, известно. Допустим, их у нас 10 штук.

Переводим их в формат, соответствующий rfc 2397, пакуем расширение, пользователи качают, ставят, пользуются.

10 х ~5kb = 50kb, не так уж и много, с учётом того, что расширение скачивается один раз.

Сказав, что "для расширения нет существенной разницы между ссылкой на файл и таким представлением", я имел ввиду, что у пользователей этих иконок изначально ведь нет, так(?); поэтому, скачают они их вместе с раширением в виде обычных файлов или в таком представлении -- разницы нет.

Вторая ситуация, которая мне приходит в голову: у вас есть желание написать расширение, меняющее графику, но файлы-"заменители" заранее не известны и, например, право их выбора отдано пользователю.

В этом случае нужно написать код, который при выборе пользователем файла-"заменителя" считывает этот файл, конвертирует его собственными средствами Mozilla и сохраняет куда-нибудь для дальнейшего использования.

В любом из этих случаев я никак не пойму смысл фразы

"просто не хотелось бы сильно раздувать файл"

Какой файл? Тот, что на сервере? А зачем его раздувать?

Так что, раз уж пробуем начать сначала ;), давайте вы более подробно опишите что же собственно вы хотите написать, потому как всё это похоже на разговор о двух разных вещах и каждый, говоря, подразумевает не то, что думает собеседник.

Отредактировано Mash (06-06-2005 18:13:27)

Отсутствует

 

№1806-06-2005 18:24:02

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Re: Не работают локальные ссылки на удалённых страницах

Большое спасибо за подробное объяснение. В общем, ситуация для меня более-менее прояснилась, но я всё же, действительно, попробую описать ещё раз мою ситуацию :).
Итак, пользователь открывает в браузере некую страничку, в которой имеются картинки (в количестве порядка 100 штук). Моё расширение должно эти картинки заменить на локальные, пользовательские (причём картинка-замена действительно определяется пользователем, а не входит в состав расширения). Говоря о том, что "не хотелось бы раздувать файл", я имел в виду саму открытую страничку - насколько я понял, единственный способ достичь желаемого - это вместо ссылки в src="..." в каждый <img> вписывать src="data:image/gif;base64,...". По большому счёту, увеличение будет не таким уж большим (типа, 100 х ~5kb = 500kb), но мне просто не понравился сам по себе такой способ решения проблемы: больно уж неуклюже - я думал, что можно всё-таки каким-то образом заставить отображать файлы по ссылке, а не прописывать каждый раз всё содержимое!
...Уфф... на этот раз, кажется, у меня несколько сумбурно получилось...:) но мысль понятна? ;)

Отсутствует

 

№1906-06-2005 18:53:55

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: Не работают локальные ссылки на удалённых страницах

А, ну, тогда можно попробовать написать нечто основанное на принципах FlashBlock.

Логика такая: при выборе пользователем картинки-"заменителя" эта картинка копируется в папку расширения, а при дальнейшей работе в src картинок, требующих замены, подставляется путь по протоколу chrome (что-то в духе "chrome://имя_расширения/content/user_pics/picture_1.gif") Только .jar-архив в этом случае не нужно создавать, чтобы иметь возможность копировать файлы, выбранные пользователем, в каталог расширения (пример -- greasemonkey, там в каталог расширения записываются пользовательские скрипты).

А использовать принцип FlashBlock можно так:

Выделить код

Код:

(CSS)
img[src]
{ -moz-binding: url("chrome://имя_расширения/content/replace.xml#replace") !important; }
Выделить код

Код:

(replace.xml)
<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl"
          xmlns:html="http://www.w3.org/1999/xhtml">
<binding id="replace">
  <implementation>
    <constructor>
      <![CDATA[
        // ......................
        // ......................
        
        img.src = "chrome://имя_расширения/content/user_pics/" + picName;
        
        // ......................
        // ......................
      ]]>
    </constructor>
  </implementation>
</binding>
</bindings>

Сразу говорю, что
1) я не знаю, сработает ли это или сработает ли это именно так, как хочется;
2) то, что приведено выше, совсем не код, а просто набросок, принцип. И даже в этом наброске м.б. ошибка. :) Времени тестировать, расписывать и думать нет.

И ещё одна мысль: попробуйте поискать, м.б. кто-то уже написал что-то подобное?

Отредактировано Mash (06-06-2005 18:57:17)

Отсутствует

 

№2006-06-2005 19:02:09

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: Не работают локальные ссылки на удалённых страницах

ps. Возможно, что есть более лучший способ, но я обычно иду путём "Нам лёгкости не нужны, только стоя и в гамаке" и лишь потом бью себя по лбу, приговаривая "Во дурак-то!". Как сделать лучше -- пока не знаю, да и вряд ли сейчас стану думать на эту тему.

Отсутствует

 

№2106-06-2005 19:05:33

comp3v
Участник
 
Группа: Members
Зарегистрирован: 05-06-2005
Сообщений: 20

Re: Не работают локальные ссылки на удалённых страницах

Ещё раз большое спасибо, сейчас буду ковыряться с приведённым примером. То есть, что касается просто подстановки chrome://... в качестве src, то это точно работает: это я как раз уже пробовал, только без использования css, как в примере, а просто тупо заменяя ссылку скриптом. На тот момент меня это не устроило, поскольку хотелось решить проблему более глобально :) (в частности, чтобы можно было не только рисунки локальные подгружать, но и на произвольные локальные файлы ссылаться, а их-то в состав расширения уже не запихнёшь!), но теперь, наверное, придётся на этом и остановиться.

И ещё одна мысль: попробуйте поискать, м.б. кто-то уже написал что-то подобное?

Дык, я искал, конечно! Поковырялся в десятке чужих расширений, но как-то ничего подобного не нашёл. Потому и начал здесь народ доставать. (Ещё спросил на форуме xulplanet.com, но там как-то и вовсе не ответили :() Вообще, меня не оставляет мысль, что существует некий способ включать это дело более изящно - через какие-нибудь настройки безопасности, что ли?...

Отсутствует

 

№2213-04-2012 13:36:52

Krechet2013
Участник
 
Группа: Members
Зарегистрирован: 20-12-2009
Сообщений: 17
UA: Firefox 11.0

Re: Не работают локальные ссылки на удалённых страницах

Можно пример скрипта на greasemonkey который заменяет картинки на те, что локально лежат - хочется сайт перелицевать, предложить так сказать альтернативу людям, а то потом и самому сайту?

Отредактировано Krechet2013 (13-04-2012 15:06:06)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]