Форум
Написать нам
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: as-master  
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » Запрет открытия ссылок в системном браузере из MMB (Все ссылки открываются в пределах браузера mmb)
Запрет открытия ссылок в системном браузере из MMB
DEMBELДата: Воскресенье, 03 Октября 2010, 23:24 | Сообщение # 31
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Alex3A)
открыывается не ие

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

короче я переименовал файл iexplore.exe в iexplore.exe_ и ссылки в новое окно перестали открываться. но они теперь вообще не пашут, другие пашут.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Alex3AДата: Понедельник, 04 Октября 2010, 01:12 | Сообщение # 32
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (DEMBEL)
короче я переименовал файл iexplore.exe в iexplore.exe_ и ссылки в новое окно перестали открываться. но они теперь вообще не пашут, другие пашут.

А убери его с браузера по умолчанию.
 
SergДата: Понедельник, 04 Октября 2010, 01:16 | Сообщение # 33
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
У меня по умолчанию стоит опера, а ссылки открываются в IE

 
Alex3AДата: Понедельник, 04 Октября 2010, 01:26 | Сообщение # 34
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (Serg)
У меня по умолчанию стоит опера, а ссылки открываются в IE

А посмотри за чем зарегено расширение хтмл. У меня за ие, а если слепить спец проект с браузером и зарегить расширение за ним?
 
SergДата: Понедельник, 04 Октября 2010, 01:40 | Сообщение # 35
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Quote
А посмотри за чем зарегено расширение хтмл

За оперой.
Quote
У меня за ие, а если слепить спец проект с браузером и зарегить расширение за ним?

За проектом? ММБ же не откроек файл.

Добавлено (04 Октябрь 2010, 01:40)
---------------------------------------------

Quote
короче я переименовал файл iexplore.exe в iexplore.exe_ и ссылки в новое окно перестали открываться. но они теперь вообще не пашут, другие пашут.

У меня восстанавливается iexplore.exe и через него открывается.




Сообщение отредактировал Serg - Понедельник, 04 Октября 2010, 01:36
 
Alex3AДата: Понедельник, 04 Октября 2010, 02:22 | Сообщение # 36
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
ну тады мож абмануть, на время работы переименовывать ие, а спец проекту давать имя ие, хотя вроде там нужна поддержка командной строки.

Добавлено (04 Октябрь 2010, 02:07)
---------------------------------------------
вот че нагуглил, попробуйте

Quote
Открыть в новом окне используйте параметр типа DWORD NoOpeninNewWnd со значением 1 в разделе
HKCU\Software\Policies\Microsoft\Internet Explorer\Restrictions

Добавлено (04 Октябрь 2010, 02:11)
---------------------------------------------
ну и еще, отключить яву.

Добавлено (04 Октябрь 2010, 02:22)
---------------------------------------------

 
decoder2Дата: Понедельник, 04 Октября 2010, 06:49 | Сообщение # 37
Новый участник
Группа: Заблокированные
Сообщений: 26
Репутация: 0
Награды: 0
Статус: Offline
Quote (Alex3A)
Открыть в новом окне используйте параметр типа DWORD NoOpeninNewWnd со значением 1 в разделе
HKCU\Software\Policies\Microsoft\Internet Explorer\Restrictions

такая штука тоже не работает - всеравно открывается не в проекте ммб

 
SowerДата: Понедельник, 04 Октября 2010, 09:04 | Сообщение # 38
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Не хочу читать тему, просто напишу немного мыслей и предложений:

Чтобы заблокировать ссылки (чтобы вообще ничего не открывалось)

Code
for (i=0; i<= 10; i++) {
         document.getElementsByClassName('agp')[i].onclick = function(){return false;}
}

Условие:
Нам нужно узнать ссылку из href, после небольших исследований, оказалось, что это свойство меняется динамически по событию onmousedown. Все ссылки подчинены классу agp.
Решение:
Переопределить onmousedown, прогнать параметры 10 ссылок на странице, проидентифицировать их от 0 до 10, сделать перенаправление на эту ссылку, вернуть false, что предотвратить открытие нового окна

Код такой:

Code
for (i=0; i< 10; i++) {
      var agp = document.getElementsByClassName('agp')[i];    
      agp.id =i;    
      agp.onclick = function(){return false;}
      agp.onmousedown =  function(){go(this); return false;}
}

function go(obj){
      location.href=obj.href;
}

Проблема:
Вроде в IE работает с ошибкой. Смотрите теперь, что можно исправить.

Сообщение отредактировал Sower - Понедельник, 04 Октября 2010, 09:27
 
DEMBELДата: Понедельник, 04 Октября 2010, 09:25 | Сообщение # 39
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline

Добавлено (04 Октябрь 2010, 09:25)
---------------------------------------------
да в общем, понятно что обрабатывать данные для браузера это бесперспективно, нужно повлиять на сам системный браузер.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Понедельник, 04 Октября 2010, 09:28 | Сообщение # 40
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (DEMBEL)
это зря. подход хороший, но представь, что в яндексе откроется любой другой сайт, со своими заморочками. для каждого сайта не напишешь обработку.

Причем тут сайты %) ?? (Код обновил) Этот код универсален, и настраивает страницу яндекса.
 
DEMBELДата: Понедельник, 04 Октября 2010, 09:33 | Сообщение # 41
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Sower)
и настраивает страницу яндекса.

я понял, именно в яндексе ссылки не будут открыватся. как выяснилось, это нужно сделать в принципе, для любых сайтов.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Понедельник, 04 Октября 2010, 09:37 | Сообщение # 42
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (DEMBEL)
это нужно сделать в принципе, для любых сайтов.

тоже есть решение на js, дайте время
 
DEMBELДата: Понедельник, 04 Октября 2010, 09:41 | Сообщение # 43
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Sower)
тоже есть решение на js, дайте время

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




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Понедельник, 04 Октября 2010, 10:13 | Сообщение # 44
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (Sower)
тоже есть решение на js

хотя тоже не факт, что будет работать всегда, но есть хорошая идея (очень хорошая :) )

Добавлено (04 Октябрь 2010, 09:43)
---------------------------------------------

Quote (Sower)
ну ты попробуй все равно...

ок

Добавлено (04 Октябрь 2010, 10:13)
---------------------------------------------

Code
links = document.getElementsByTagName('a');
var count = 0;
var blank = 0;
while (links[count]){
  count++;
  try {
   if (links[count].target = '_blank'){
    blank++;
    links[count].target = '';
   }
  }
  catch(err) {}
}

вот получается самый простой уровень, дальше ещё нужно подумать

Добавлено (04 Октябрь 2010, 10:13)
---------------------------------------------
у форм тоже можно такуюже весч делать...

 
DEMBELДата: Понедельник, 04 Октября 2010, 10:33 | Сообщение # 45
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
ну в общем ты понял в чем проблема. надо прошерстить все ссылки и если есть _blank поставить _self, а лучше вообще во всех ссылках это проставить или "обнулить". а то мож с другими типами окон такаяже лажа. но проблема эта может еще быть не только с ссылками по идее но и другими активными элементами или скриптами.



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Понедельник, 04 Октября 2010, 11:38 | Сообщение # 46
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (DEMBEL)
или скриптами.

да, вот эта проблема. Если только можно было-бы отловить событие window.open
 
Alex3AДата: Понедельник, 04 Октября 2010, 11:52 | Сообщение # 47
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (DEMBEL)
ну в общем ты понял в чем проблема. надо прошерстить все ссылки

Quote (Sower)
Sower
вполне прав, и делает правильно, пользуясь объектной моделью докумунта, getElementsByTagName('a'); это дает все теги а в любом документе.
Только не все переходы идут через а, ява то же может послать, так что надо просмотреть в каких местах может быть переход в новое окно, и через дом их переписывать. Правда и тут возможны камни, переход может появлятся после клика, при расшифровке явой, то есть в дом на момент клика перехода может и не быть.
В общем энто фсе ананиззм, но помучатся будет полезно. :D
 
SowerДата: Понедельник, 04 Октября 2010, 11:53 | Сообщение # 48
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
 
DEMBELДата: Понедельник, 04 Октября 2010, 12:07 | Сообщение # 49
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
а мож заменить выражения могущие открыть окно мусором или испортить их

Добавлено (04 Октябрь 2010, 12:07)
---------------------------------------------
или отрезать вообще




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Понедельник, 04 Октября 2010, 12:20 | Сообщение # 50
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
короче если через js, то вроде единственный способ - это загнать код в переменную и с помощью регулярных выражений выделить команду window.open, извлеч параметры окна и создать в текущем
например
Code
document.onclick = function go (event){
     var code = event.target.onclick;
     ...
     здесь регулярка
}

содержимое переменной code будет именно текстовым, такчто, помоему вот оно решение

Добавлено (04 Октябрь 2010, 12:18)
---------------------------------------------
можно сделать ради интереса, но опять же - это не выход, в коде onclick может быть ссылка на другую функцию, а в той еще на одну, и только через функций 10 :D происходит открытие, скорее я ошибался, что на js можно это сделать :'(

Добавлено (04 Октябрь 2010, 12:20)
---------------------------------------------
DEMBEL, а VBScript что-нибудь может с этим сделать?

 
decoder2Дата: Понедельник, 04 Октября 2010, 12:29 | Сообщение # 51
Новый участник
Группа: Заблокированные
Сообщений: 26
Репутация: 0
Награды: 0
Статус: Offline
целая демогогия образовалась....но решения я так понял видимо нету?
 
DEMBELДата: Понедельник, 04 Октября 2010, 12:50 | Сообщение # 52
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Sower)
DEMBEL, а VBScript что-нибудь может с этим сделать?

какая разница, будет такая же фигня
Quote (decoder2)
но решения я так понял видимо нету?

полурешения я бы так сказал

Добавлено (04 Октябрь 2010, 12:50)
---------------------------------------------

Quote (DEMBEL)
какая разница, будет такая же фигня
да и потом, представь например рекламный баннер, показываемый лохматым шифрованным скриптом через фрейм...
Quote (decoder2)
решения я так понял видимо нету?
самое реальное что можно сделать - просто заменить скриптом все обычные ссылки типа <a href> чтобы открывались не в новом окне. в остальных случаях браузер будет реагировать открытием окна. Дополнительный вариант - отключать IE на время работы программы (путем переименования файла iexplore.exe, но это не вариант т.к. он защищен, остается как-то настроить IE или систему чтобы IE не лез со своими окнами. На 100% данная задача представляется мне нерешаемой в рамках ммб.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Понедельник, 04 Октября 2010, 13:10 | Сообщение # 53
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
вобще затея глупая :) переделать браузер называтся
 
decoder2Дата: Понедельник, 04 Октября 2010, 13:22 | Сообщение # 54
Новый участник
Группа: Заблокированные
Сообщений: 26
Репутация: 0
Награды: 0
Статус: Offline
Quote (Sower)
вобще затея глупая переделать браузер называтся

да просто изначально все было затеяно под информационный киоск с тачскрином (паличиками управлять), но как оказалось попадаются "продвинутые" юзеры котрые умудряются через IE на диск выйти - а там чего хотишь того и ломай %-), а тут все выползло в разглагольствования по поводу ссылок... всего то надо чтоб из ммб не выходил в стандартные проги... сорри если кого оскорбил (неумышлял того!)

 
SowerДата: Понедельник, 04 Октября 2010, 14:38 | Сообщение # 55
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (decoder2)
всего то надо чтоб из ммб не выходил в стандартные проги

это оказалось не так просто))

Такие проги не на ммб делать...

Добавлено (04 Октябрь 2010, 14:38)
---------------------------------------------

Quote (Serg)
хорошо бы иметь плагин браузера на движке оперы или хроме или мозилы..

Интересная мысль, но тяжело осуществимая :D
 
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » Запрет открытия ссылок в системном браузере из MMB (Все ссылки открываются в пределах браузера mmb)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: