Franz Enzenhofers Copy and Fetch + ChatGPT Bookmarklet

A bookmarklet to share the content in your selection + the URL with a custom ChatGPT.

The custom GPT will then fetch the content of the URL for additional context.

Installation

Use Cases

Manual Installation Guide

  1. Right-click on your bookmarks bar and select "Add Page" or "Add Bookmark".
  2. In the form that appears, set the name as "Copy and Fetch" or any name you prefer.
  3. Copy the following code and paste it into the URL field:
  4. javascript:(function()%7Btry%7Bvar selection = window.getSelection ? window.getSelection().toString().trim() : %27%27;var currentUrl = window.location.href || %27URL unavailable%27;var message = selection || `Fetch content from ${currentUrl} for context. Please wait for further instructions.`;var baseMessage = `I copied this content:%5Cn%5Cn>>>%5Cn${message}%5Cn>>>%5Cn%5CnFrom this URL: ${currentUrl}%5CnFetch this URL for more context.%5Cn%5CnPlease wait for further instructions.`;var encodedMessage = encodeURIComponent(baseMessage);var targetUrl = `https://chat.openai.com/g/g-soMXGp85o-franz-enzenhofers-copy-and-fetch/?q=${encodedMessage}`;var newTab = window.open(targetUrl, %27_blank%27);if (!newTab) %7Bthrow new Error(%27Failed to open a new tab. Please check if pop-up blockers are enabled and try again.%27);%7D%7Dcatch (error)%7Bconsole.error(%27Bookmarklet Error:%27, error.message);alert(%27An error occurred while executing the bookmarklet. Please check the console for more details.%27);%7D%7D)();
  5. Save the bookmark. Now, whenever you're on a page you want to analyze, click the bookmark. A new tab will open with the analysis.

Drag and Drop Installation

For a quick and easy installation, you can simply drag the following link to your bookmarks bar:

Copy and Fetch

If the above method doesn't work, follow the manual installation guide.

Test the Bookmarklet

Enter a URL and selection text to simulate the bookmarklet:





Bookmarklet Code Explained

// Immediately Invoked Function Expression (IIFE) for encapsulation. 
(function() {
  try {
    // Get selected text or fallback to empty string
    var selection = window.getSelection ? window.getSelection().toString().trim() : '';

    // Get current URL or fallback to 'URL unavailable'
    var currentUrl = window.location.href || 'URL unavailable';

    // Create message from selection or URL
    var message = selection || `Fetch content from ${currentUrl} for context.`;

    // Format base message with content and URL
    var baseMessage = `I copied this content:\n\n>>>\n${message}\n>>>\n\nFrom this URL: ${currentUrl}\nFetch this URL for more context.\n\nPlease wait for further instructions.`;

    // Encode message for URL parameter
    var encodedMessage = encodeURIComponent(baseMessage);

    // Construct target URL with encoded message
    var targetUrl = `https://chat.openai.com/g/g-soMXGp85o-franz-enzenhofers-copy-and-fetch/?q=${encodedMessage}`;

    // Open new tab with target URL
    var newTab = window.open(targetUrl, '_blank');

    // Throw error if new tab couldn't be opened
    if (!newTab) throw new Error('Failed to open a new tab. Check pop-up blockers.');
  } catch (error) {
    // Log error and alert user
    console.error('Bookmarklet Error:', error.message);
    alert('An error occurred. Check the console for details.');
  }
})();
    

How to Use

Navigate to any web page → Select any text → Click the "Copy and Fetch" bookmark → A new tab opens with ChatGPT → Wait 5 seconds and the selected content and URL will be pre-filled into ChatGPT!

Feedback and Comments

Feedback and comments. Please share them on this Hacker News post:

https://news.ycombinator.com/item?id=39601349