ChatGPT Shortcut for Google Search

Add a ChatGPT button inside the Google search bar container

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         ChatGPT Shortcut for Google Search
// @namespace    http://tampermonkey.net/
// @version      1.0.0
// @description  Add a ChatGPT button inside the Google search bar container
// @author       jamubc
// @match        https://www.google.com/search*
// @license GNU GPLv3
// ==/UserScript==

(function() {
    'use strict';

    // Check if there’s a search query in the URL
    const urlParams = new URLSearchParams(window.location.search);
    const query = urlParams.get('q');

    if (query) {
        // Locate the main search bar container with class 'RNNXgb'
        const searchBarContainer = document.querySelector('.RNNXgb');

        if (searchBarContainer) {
            // Create a ChatGPT button
            const button = document.createElement('button');
            button.textContent = "Ask ChatGPT";
            button.style.marginLeft = '10px'; // Space between other elements
            button.style.padding = '6px 10px';
            button.style.backgroundColor = '#1f1f1f';
            button.style.color = 'white';
            button.style.border = 'none';
            button.style.borderRadius = '4px';
            button.style.cursor = 'pointer';
            button.style.fontSize = '12px';
            button.style.display = 'flex';
            button.style.alignItems = 'center';

            // Add functionality to the button
            button.addEventListener('click', () => {
                const chatGPTUrl = `https://chat.openai.com/?q=${encodeURIComponent(query)}`;
                window.open(chatGPTUrl, '_blank');
            });

            // Insert the button at the end of the search bar container
            const buttonContainer = searchBarContainer.querySelector('.BKRPef');
            if (buttonContainer) {
                buttonContainer.appendChild(button);
            } else {
                console.error("Button container {} not found inside the search bar.");
                console.error("An error will occur when google updates their website.");
            }
        } else {
            console.error("Search bar container {} not found.");
            console.error("An error will occur when google updates their website.");
        }
    }
})();