Есть ли способ сделать ссылку на JavaScript открытой в IE? - PullRequest
3 голосов
/ 07 апреля 2009

У меня есть ссылка, которая использует javascript для отправки формы, например:

<a href="javascript:document.some_form.submit()">some link</a>

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

Ответы [ 4 ]

10 голосов
/ 07 апреля 2009

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

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

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

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

4 голосов
/ 07 апреля 2009

Нет, нет. Это будет серьезная угроза безопасности - сайт, использующий ошибку Internet Explorer, сможет таким образом заразить пользователя в Mozilla Firefox.

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

1 голос
/ 07 апреля 2009

Я так не думаю, потому что вам придется запускать / активировать программу на клиентском компьютере. Вы можете перенаправить отправку и предупредить пользователя, если он не в IE, и вернуть false в этом случае. Возможно, лучший синтаксис для ссылки:

<a href="#dummy" onclick="document.some_form.submit()">some link</a>
0 голосов
/ 07 апреля 2009

Что вы можете сделать (и я сделал), чтобы ссылка не работала, если человек, щелкающий по ней, не использует Internet Explorer и открывает новое окно, открывает DIV или открывает alert(), сообщая им для работы целевого сайта должен использоваться Internet Explorer.

Что-то вроде:

<a href="/enablejavascript.html"
    onclick="
        if (window.external && 'undefined' !== typeof window.external.AddFavorite) {
            document.forms['some_form'].submit();
        } else {
            alert('You must be using Internet Explorer to use this website.');
        }
        return false;
    ">some link</a>

window.external.AddFavorite (насколько мне известно) доступно только в Internet Explorer, поэтому его использование для обнаружения IE должно быть достаточно безопасным. Вы также можете проверить navigator.userAgent на MSIE, однако некоторые браузеры, такие как Opera, могут подделать пользовательский агент IE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...