2014-02-06 4 views
3

Я пытаюсь создать очень простой сайт, который использует Google Charts QR API для генерации QR-кодов. Код, я использую довольно простоДобавить пользовательскую поисковую систему по JavaScript

<form id="QR" action="http://chart.apis.google.com/chart" target="QRwindow" method="POST"> 
    <h1>QR Code<br/>Generator</h1> 
    <textarea autofocus name="chl" 
    onkeypress="if(event.which==13&&!event.shiftKey){document.getElementById('cht').click();event.preventDefault();}" 
    onkeyup="if(this.value.length&gt;2000) this.value=this.value.substring(0,1500)"></textarea> 
    <div>QR size (px):</div> 
    <input type="hidden" name="chld" value="|0"/> 
    <input type="number" name="chs" value="250" min="50" max="275"/> 
    <button type="submit" name="cht" id="cht" value="qr">Generate!</button> 
</form> 
<iframe name="QRwindow" id="QRwindow" width="275" height="275" frameborder="0" src="http://chart.apis.google.com/chart?chld=|0&chs=250&cht=qr&chl=Foo%20Bar"></iframe> 

http://jsbin.com/fule/2/

То, что я хотел бы сделать, это добавить кнопку, которая автоматически позволяет пользователю добавить поисковую систему с помощью следующего URL:

http://chart.apis.google.com/chart?chld=|0&chs=250&cht=qr&chl=%s 

, но я не смог найти способ автоматического добавления поисковой системы для пользователя. Я, конечно, понимаю, что это может быть угрозой безопасности, но есть также возможность добавить обработчик gmail как для mailto:, поэтому я бы предположил, что подобная настройка браузера, такая как добавление поисковой системы, возможно (будь то с помощью подтверждение пользователя). Это вообще возможно?

ответ

2

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

window.external.AddSearchProvider('/linktoyourxmldoc.xml') 

Ваш XML должен иметь следующие атрибуты:

<?xml version='1.0' encoding='UTF-8'?> 
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"> 
    <ShortName>QR creator</ShortName> 
    <Description>Create a QR code.</Description> 
    <Tags>qr</Tags> 
    <Contact>[email protected]</Contact> 
    <Url type="text/html" template="http://chart.apis.google.com/chart?chld=|0&amp;chs=250&amp;cht=qr&amp;chl={searchTerms}"/> 
</OpenSearchDescription> 

Я до сих пор не получил это, чтобы работать в хроме.

Редактировать: Не работает, вам необходимо изменить знаки & на номер &amp;.

Это все согласно opensearch standard. Дополнительные параметры поиска и информация находятся на странице this.

Я не знаю, почему он не работает в хроме, поскольку в документе this указано, что он также работает в хромированном состоянии.

Это также seems, что вы можете сразу поставить ссылку в заголовке:

<link rel="search" type="application/opensearchdescription+xml" href="/linktoyourxmldoc.xml" title="MySite Search" /> 
+0

Какие браузеры поддерживают это? И есть ли у вас какая-либо ссылка с дополнительной информацией об этом? – Joeytje50

+0

[этот JSBin работает в Chrome] (http://jsbin.com/nusa/1/). Вероятно, проблема заключалась в том, что ваш тип содержимого в скрипте не был «application/opensearchdescription + xml» (который, по-видимому, имеет расширение файла .osdx'), но «text/xml». В Firefox говорится, что поисковая система не поддерживается, а в IE возвращается ошибка, говорящая о том, что 'window.external' не определено, но запуск скрипта вручную возвращает ошибку, говорящую« разрешение отклонено ». Наконец, Opera просто не поддерживает его. Я не тестировал Safari. – Joeytje50

+0

@ Joeytje50 Кажется, не работает для меня в Chrome 46 – Alex

Смежные вопросы