جعل استخدام Google Chrome's Omnibox [علامة التبويب] ميزة / على موقع الويب الشخصي؟

StackOverflow https://stackoverflow.com/questions/1317051

سؤال

أعتقد أن العنوان يفسر كل شيء ولكني ذاهب أعمق في سؤالي على أي حال:

كيف يمكنني الاستفادة من ميزة Chrome's Omnibox [علامة التبويب] لموقع الويب الخاص بي؟

كما طلب من المستخدمين مني تنفيذ هذه الميزة على الموقع، فعلت البحث على OpenSearchDescription وكان ناجحا للغاية في التنفيذ مع SearchBar Firefox و IE7 / IE8.

ومع ذلك، فإن التنفيذ لم يعمل تماما مع ميزة Chrome Omnibox [علامة التبويب] ..

هل يمكنك مساعدتي مع هذا؟

رمز OSD.XML الخاص بي:

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>MySite</ShortName>
<Description>My Site</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">http://MySite.com/favicon.ico</Image>
<Url type="application/x-suggestions+json" method="GET"
     template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />
<Url type="text/html" method="POST" template="http://MySite.com/query.php">
  <Param name="sString" value="{searchTerms}"/>
</Url>
<Url type="application/x-suggestions+json" template="suggestionURL"/>
<moz:SearchForm>http://www.MySite.com</moz:SearchForm>
</OpenSearchDescription>

وهذا هو الرابط إلى ملف OSD على صفحتي:

<link rel="search" type="application/opensearchdescription+xml" title="MySite" href="/opensearch.xml" />
هل كانت مفيدة؟

المحلول 2

الحصول على عمل OSD (OpenSearchDescription) يعمل تحت Google Chrome أو IE7 / IE8 أمر صعب كما ذكر أو أن هذه المتصفحات لا تدعم طلبات النشر.

مع القليل من التغيير والتبديل، وجدت الحل البديل للمشكلة بأكملها.

رمزي الأولي:

<Url type="text/html" method="POST" template="http://MySite.com/query.php">
  <Param name="sString" value="{searchTerms}"/>
</Url>

يشير هذا الرمز مباشرة إلى صفحة الاستعلام ويمرر القيمة لسمة SSTRING على طلب النشر الخاص بي.

يعمل ذلك تماما على فايرفوكس ولكنه لا يعمل بشكل جيد تماما على IE7 / IE8 أو Google Chrome (لم أقم باختبار Opera أو Safari حتى الآن ..).


تغيير الرمز إلى القطعة التالية:

<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url>
  • إزالة طريقة = "المشاركة" من العنصر
  • استبدال /Query.php. مع مكالمة الصفحة الفعلية: /Query.php؟sstring={ Searcherms}
  • إزالة الآن غير ضرورية "<Param name="sString" value="{searchTerms}"/>"

حل مشكلتي من عدم التوافق مع تلك المتصفحات.

يتم توجيه جميع المكالمات مباشرة إلى صفحة الاستعلام وحتى ذلك في البداية كان طلب ما بعد ذلك، فإنه يعمل الآن على كل من IE7 / IE8 وجوجل كروم.

شكرا مرة أخرى adrianbanks لتزويدني بملف XML الخاص بك مما أدى إلى الحل!

نصائح أخرى

لقد قارنت ما لديك ضد OpenSearchDescription على موقعي الخاص وأنا لا أستطيع أن أرى لماذا لا يعمل لك. الفرق الحقيقي الوحيد هو أنك تستخدم وظيفة للبحث في حين أن أستخدم الحصول عليها. وفق هذه الصفحة، IE7 لا يدعم طلبات النشر، لذلك قد يكون المتصفحات الأخرى أيضا لا تدعم النشر.

من المؤكد أن الشخص الموجود في موقعي يعمل بالتأكيد في IE8 و Chrome 3.0 و FF 2.0+. لا تتردد في مقارنتها بنفسك ومعرفة ما إذا كان بإمكانك اكتشاف فرق: opensearch.xml

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top