Действительно ли возможно открыть пользовательскую схему URL с Google Chrome?

У меня есть протокол (как http) со схемой, управляемой с приложением сторонних производителей, зарегистрированным в Mac OS X. Т.е., x-someapp://someaction или что-то как этот.

Как я могу открыть этот URL с Google Chrome? По умолчанию Chrome начинает искать в механизме Google, вместо этого запускающем Приложение и передающем обработку URL ему...

Safari запускает некоторое зарегистрированное Приложение. И это - правильная вещь.

Firefox и Opera спрашивают, что сделать..., и я могу запустить Приложение также.

Но Chrome... Не спрашивает.

Я даже пытался записать некоторую страницу HTML с JavaScript внутри для отправки XHttpRequest:

function _httpExecuteCallback()
{
 if (httpRequestCallbackFunction != null) {
  if (httpRequest.readyState == 4) {
   if (httpRequest.status == 200) {
    httpRequestCallbackFunction();
    httpRequestCallbackFunction = null;
   }   
  }
 }
}

function _httpGet(url, callbackFunction)
{
 httpRequest = false;
 httpRequestCallbackFunction = callbackFunction;
 httpRequest = new XMLHttpRequest();
 httpRequest.onreadystatechange = _httpExecuteCallback;
 httpRequest.open('GET', url, true);
 httpRequest.send(null);
}


_httpGet('x-someapp://test',function(){})

Никакие результаты также...

24
задан UncleMiF 24 February 2010 в 23:43
поделиться

2 ответа

Я нашел решение, которое работает с Chrome. Я использую IFRAME-way.

Пример (с JQuery):

$("body").append('<span id="__protoProxy"></span>');

function queryWord(aWord)
{
 var protoProxy = document.getElementById('__protoProxy');
 if (protoProxy)
 {   
  var word = aWord.replace('"','\"');
  protoProxy.innerHTML = '<div style="display:none;"><iframe src="x-myproto://query?' + word + '"></iframe></div>';
 }
}

queryWord('hello');
2
ответ дан 28 November 2019 в 23:39
поделиться

Если Chrome не распознает схему URL-адресов, по умолчанию выполняется поиск.

Вот что я вижу в Safari: альтернативный текст http://img62.imageshack.us/img62/6792/clipboard02oh.jpg

и в Firefox:

альтернативный текст http://img138.imageshack.us/img138/9986/clipboard04xk.jpg

Я считаю, что причина, по которой Chrome по умолчанию выполняет поиск, заключается в том, что существуют специальные поисковые запросы Google, в которых используется двоеточие.

Например:

  • define: dictionary
  • filetype: pdf google chromium

Это одна из неприятностей, которые у меня есть с Firefox, мне нужно перейти к «окну поиска», а не к адресной строке, чтобы выполнить эти типы поисков. Поскольку в Chrome нет отдельного окна поиска, как в Firefox, IE и Safari, эта функция является обязательной.

Запросы Ajax не помогут вам обойти эту проблему.

2
ответ дан 28 November 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: