您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds an issue creation button to GitHub repository pages.
- // ==UserScript==
- // @name AddNewIssueButton
- // @namespace http://tampermonkey.net/
- // @version 0.0.1
- // @description Adds an issue creation button to GitHub repository pages.
- // @author zcf0508
- // @match https://github.com/*/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=github.com
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- const repoData = window.location.pathname.split('/');
- const repoName = repoData[2];
- const userName = repoData[1];
- const repo = `${userName}/${repoName}`;
- const createButton = () => {
- const button = document.createElement('button');
- button.textContent = 'Add Issue';
- button.className = 'btn btn-primary';
- button.addEventListener('click', () => {
- location.href = `https://github.com/${repo}/issues/new`;
- });
- return button;
- };
- const appendButton = () => {
- if (repoName && userName) {
- let parent = document.querySelector('.AppHeader-actions');
- let issuesTab = document.querySelector('#issues-tab');
- if (parent && issuesTab) {
- parent.appendChild(createButton());
- }
- }
- };
- // Use MutationObserver to ensure the button is added when the DOM changes
- const observer = new MutationObserver((mutationsList, observer) => {
- for (let mutation of mutationsList) {
- if (mutation.type === 'childList') {
- appendButton();
- observer.disconnect(); // Disconnect after adding the button
- break;
- }
- }
- });
- observer.observe(document.body, { childList: true, subtree: true });
- // Fallback to DOMContentLoaded in case the DOM is already loaded
- document.addEventListener('DOMContentLoaded', appendButton);
- })();