{"id":13448529,"url":"https://github.com/xcv58/Custom-JavaScript-for-Websites-2","last_synced_at":"2025-03-22T09:31:25.372Z","repository":{"id":30443070,"uuid":"33996468","full_name":"xcv58/Custom-JavaScript-for-Websites-2","owner":"xcv58","description":"Run custom JavaScript on any website","archived":false,"fork":false,"pushed_at":"2025-03-17T22:47:16.000Z","size":6328,"stargazers_count":184,"open_issues_count":67,"forks_count":50,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-17T23:35:27.173Z","etag":null,"topics":["ace","chrome-extension","custom-javascript","javascript","react"],"latest_commit_sha":null,"homepage":"https://xcv58.xyz/inject-js","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xcv58.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-15T13:47:46.000Z","updated_at":"2025-03-09T02:39:07.000Z","dependencies_parsed_at":"2023-12-16T01:29:22.545Z","dependency_job_id":"a73896e9-83d7-4fa5-9c30-b674c95923ee","html_url":"https://github.com/xcv58/Custom-JavaScript-for-Websites-2","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcv58%2FCustom-JavaScript-for-Websites-2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcv58%2FCustom-JavaScript-for-Websites-2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcv58%2FCustom-JavaScript-for-Websites-2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xcv58%2FCustom-JavaScript-for-Websites-2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xcv58","download_url":"https://codeload.github.com/xcv58/Custom-JavaScript-for-Websites-2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244937751,"owners_count":20535124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ace","chrome-extension","custom-javascript","javascript","react"],"created_at":"2024-07-31T05:01:48.106Z","updated_at":"2025-03-22T09:31:25.367Z","avatar_url":"https://github.com/xcv58.png","language":"TypeScript","readme":"# DEPRECATED\n\n**There is no way to provide the same experience in latest Chrome. The extension won't be updated to manifest v3. More details in https://github.com/xcv58/Custom-JavaScript-for-Websites-2/issues/868**\n\n# Custom JavaScript for websites\n\n[![CircleCI](https://circleci.com/gh/xcv58/Custom-JavaScript-for-Websites-2.svg?style=svg)](https://circleci.com/gh/xcv58/Custom-JavaScript-for-Websites-2)\n[![Build Status](https://travis-ci.org/xcv58/Custom-JavaScript-for-Websites-2.svg?branch=master)](https://travis-ci.org/xcv58/Custom-JavaScript-for-Websites-2)\n[![dependencies Status](https://david-dm.org/xcv58/Custom-JavaScript-for-Websites-2/status.svg)](https://david-dm.org/xcv58/Custom-JavaScript-for-Websites-2)\n[![devDependencies Status](https://david-dm.org/xcv58/Custom-JavaScript-for-Websites-2/dev-status.svg)](https://david-dm.org/xcv58/Custom-JavaScript-for-Websites-2?type=dev)\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/92a8617dc60beef87408/maintainability)](https://codeclimate.com/github/xcv58/Custom-JavaScript-for-Websites-2/maintainability)\n[![DeepScan Grade](https://deepscan.io/api/projects/737/branches/1388/badge/grade.svg)](https://deepscan.io/dashboard/#view=project\u0026pid=737\u0026bid=1388)\n\n[![JavaScript Style Guide](https://cdn.rawgit.com/standard/standard/master/badge.svg)](https://github.com/standard/standard)\n\n\n[Custom JavaScript for Websites 2 - Chrome Extension](https://xcv58.xyz/inject-js)\n\nRun custom JavaScript on any website.\nUse this tool to inject custom javascript in any website.\n\nYour scripts are kept in the local storage and applied across domain URLs.\n\nYou can use jQuery 1.11.x or 2.1.x or your own external scripts.\n\nUse cases:\n- site debugging (wrong list sort, etc.)\n- hiding annoyng popups and Ads\n- custom UI\n- anything you can think of :)\n\nNew features:\n- Ace Editor (formating, highlight, undo/redo by hotkeys)\n- Draft auto save (so doesn't matter when you close the window without saving)\n- Hosts (websites) switch (you can browse customjs of other websites)\n- Include external script (eq. Underscore.js is cool)\n\nThanks to:\n- Ace - http://ace.c9.io/\n- Pure - http://purecss.io/\n\n# base.js\nYou can find `base.js` at `extension/lib/base.js`.\nIt provides useful functions for you. You can directly use all functions in your\nJavaScript code. To avoid name conflict, all functions start with `customjs`.\n\nNow there're only one function:\n\n## `customjsReady`\n```javascript\ncustomjsReady('.nav', function(element) {\n  // do something\n});\n```\n\nThe `customjsReady` wiil be called when an element matching the selector\nis added to the DOM. You can find more details from:\nhttp://ryanmorr.com/using-mutation-observers-to-watch-for-element-availability/\n\nSpecial thanks to [Ryan Morr](http://ryanmorr.com/)\n\n## How do I inject large JavaScript\n\nYou can host the JS code in public accessible url and dynamically load and eval it. A sample implementation like this:\n\n```\ncustomjsReady('body', function(element) {\n  fetch('https://gist.githubusercontent.com/xcv58/5aaeda690ace2f468d51dbf9c65a3980/raw/a8b1c59223892fb2be08490b00c84fa4a029bb8e/test.js')\n    .then((res) =\u003e res.text())\n    .then((js) =\u003e {\n      console.log('works in fetch', js)\n      eval(js);\n    })\n});\n```\n\n# Why Custom JavaScript for Websites 2\nSince the author haven't update original extension for almost one year.\nIts website http://hromadadan.com is also unavailable.\nI can not find the author.\n\nBut the sync feature is urgent. So this repos is here.\n\nYou can download older versions from: https://crx.dam.io/ext/ddbjnfjiigjmcpcpkmhogomapikjbjdk.html\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxcv58%2FCustom-JavaScript-for-Websites-2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxcv58%2FCustom-JavaScript-for-Websites-2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxcv58%2FCustom-JavaScript-for-Websites-2/lists"}