您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds button to inject HTML code into the description box on IMVU product edit page
当前为
// ==UserScript== // @name IMVU HTML Description Injector V5 // @namespace http://tampermonkey.net/ // @version 5 // @description Adds button to inject HTML code into the description box on IMVU product edit page // @author Shop Spikes / add spcckz @ discord for any issues/feature requests you have // @match https://www.imvu.com/creator/edit_product_html/* // @grant none // @license GNU GPLv3 // ==/UserScript== (function() { 'use strict'; let textColor = localStorage.getItem('chosenColor') || '#ffffff'; let textShadow = localStorage.getItem('rememberShadow') === 'true' ? '2px 2px 4px rgba(0,0,0,0.8)' : 'none'; function toggleDropShadow() { textShadow = document.getElementById('dropShadowCheckbox').checked ? '2px 2px 4px rgba(0,0,0,0.8)' : 'none'; injectHTMLCode(); localStorage.setItem('rememberShadow', document.getElementById('dropShadowCheckbox').checked); } function changeFontColor() { textColor = document.getElementById('fontColorPicker').value; injectHTMLCode(); localStorage.setItem('chosenColor', textColor); } function getUserIdFromLink() { const userIdMatch = document.querySelector('a.notranslate').getAttribute('href').match(/user=(\d+)/); return userIdMatch ? userIdMatch[1] : null; } function injectHTMLCode() { const userId = getUserIdFromLink(); const derivedFromNumber = window.location.href.match(/edit_product_html\/(\d+)/) ? window.location.href.match(/edit_product_html\/(\d+)/)[1] : ''; if (userId) { const userImages = document.getElementById('userImages').value.split('\n'); const backgroundImage = localStorage.getItem('chosenImage') || ''; const bannerCode = document.getElementById('bannerBox').value.trim(); const footerTextColor = document.getElementById('fontColorPicker').value; const additionalHtml = document.getElementById('additionalHtml').value; const username = document.getElementById('usernameInput').value.trim(); // Added username input // Added category buttons with dynamic username const categoryButtonsHTML = ` <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Button Links</title> <style> body, html { margin: 0; padding: 0; height: 100%; } .button-container { display: flex; justify-content: center; align-items: flex-start; min-height: 10px; /* Adjust minimum height to ensure full viewport coverage */ gap: 25px; /* Add some space between columns */ padding: 20px; /* Add padding as necessary */ } .column { display: flex; flex-direction: column; align-items: center; flex: 1; /* Ensure columns grow to fill container */ } .column h2 { margin-bottom: 20px; } .styled-button { display: flex; align-items: center; justify-content: center; width: 150px; /* Fixed width for all buttons */ padding: 10px 20px; font-size: 16px; color: #fff; background-color: #333; border: none; border-radius: 5px; text-decoration: none; margin: 10px 0; transition: background-color 0.3s; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); /* Add drop shadow */ } .styled-button:hover { background-color: #555; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); /* Add drop shadow */ } </style> </head> <body> <div class="button-container"> <div class="column"> <h2>MALE</h2> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-41-71&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Accessories </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-41-68&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Skins </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-41-94&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Eyes </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-41-67&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Hair </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-41-69&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Tops </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-41-70&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Pants </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-41-102&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Shoes </a> </div> <div class="column"> <h2>FEMALE</h2> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-40-153&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Accessories </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-40-76&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Skins </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-40-89&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Eyes </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-40-75&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Hair </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-40-75&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Tops </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-40-128&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Pants </a> <a href="https://www.imvu.com/shop/web_search.php?keywords=${username}&within=creator_name&page=1&cat=106-40-101&bucket=&tag=&sortorder=desc&quickfind=new&product_rating=-1&offset=27&narrow=&manufacturers_id=&derived_from=0&derivable=0&sort=id" class="styled-button" target="_blank"> Shoes </a> </div> </div> `; const dropShadowImageUrl = 'https://userimages-akm.imvu.com/userdata/38/39/59/89/userpics/Snap_j4ogbJlGKQ1012285644.png'; const imageHTML = userImages.map(image => `<center><div style="position: relative; display: inline-block;"><img src="${image.trim()}" style="position: relative; z-index: 1;"><img src="${dropShadowImageUrl}" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0;"></div></center>`).join(''); const gaf210Code = `<center><!-- Product Marquee made @ gaf210.gafcodes.com --><style>.imvustylez_products_marquee{margin:0 auto}.imvustylez_products_marquee [id$="_panel_header"]{display:none!important;font-size:1px}.imvustylez_products_marquee [id$="_panel_body"]{line-height:1px}.imvustylez_products_marquee .productbox,.imvustylez_products_marquee .productbox img{width:100px!important;height:80px!important}</style><marquee class='imvustylez_products_marquee' width='500' height='100' scrollamount='12' direction='left' behavior='scroll' onmouseover="this.stop()" onmouseout="this.start()"><div style='width:2675px'><script src="https://gaf210.gafcodes.com/newprodsbanner/filtered_dev_panel.js.php?dev_id=${userId}&pn=new&q=25"></script></div></marquee></center>`; const iframeCode = `<center><a href="https://www.imvu.com/shop/web_search.php?derived_from=${derivedFromNumber}" target="_blank">CLICK HERE to open derivations of this item in a new tab</a><iframe name="Derived Products" src='https://www.imvu.com/shop/web_search.php?derived_from=${derivedFromNumber}?keywords=Punishment&within=creator_name&sortorder=desc&quickfind=new&sort=id#products' width='775' height='105' scrolling="no" style="margin: 0; padding: 0;"></iframe></center>`; const injectedHtmlCode = ` <center>${gaf210Code}${iframeCode}${categoryButtonsHTML} <style> html, body { } body { background-image: url('${backgroundImage}'); background-repeat: no-repeat; background-attachment: fixed; background-size: cover; color: ${textColor}; text-shadow: ${textShadow}; padding: 0; margin: 0; overflow: visible; display: flex; flex-direction: column; justify-content: space-between; .body-content { overflow-y: visible; /* Enable scrolling for content that exceeds viewport height */ } .autoHtmlFooter { font-size: 16px; color: ${footerTextColor}; margin: 0; padding: 0px; overflow-y: visible; text-align: right; } .preview-container { flex: 1; /* This makes the preview container grow to fill available space */ display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; overflow-y: visible; } </style> <div class="preview-container">${imageHTML}</div> ${bannerCode ? bannerCode : ''} <div class="autoHtmlFooter">EZ-AutoHTML by Spikes, spcckz@discord</div> ${additionalHtml} </center>`; const descriptionTextarea = document.querySelector('#description'); if (descriptionTextarea) { descriptionTextarea.value = injectedHtmlCode; } } } function loadSavedValues() { document.getElementById('userImages').value = localStorage.getItem('userImages') || ''; document.getElementById('bannerBox').value = localStorage.getItem('bannerCode') || ''; document.getElementById('backgroundImageInput').value = localStorage.getItem('chosenImage') || ''; document.getElementById('additionalHtml').value = localStorage.getItem('additionalHtml') || ''; document.getElementById('usernameInput').value = localStorage.getItem('username') || ''; } function saveInputValues() { localStorage.setItem('userImages', document.getElementById('userImages').value); localStorage.setItem('bannerCode', document.getElementById('bannerBox').value); localStorage.setItem('chosenImage', document.getElementById('backgroundImageInput').value); localStorage.setItem('additionalHtml', document.getElementById('additionalHtml').value); localStorage.setItem('username', document.getElementById('usernameInput').value.trim()); } function addButtonAndInput() { const container = document.createElement('div'); container.style.cssText = 'position:absolute;top:235px;right:200px;z-index:9999;font-size:16px;display:flex;flex-direction:column;align-items:center'; const input = document.createElement('textarea'); input.id = 'userImages'; input.rows = 6; input.placeholder = 'Enter preview image URLs here. To add more, press Shift+Enter after the first URL.'; const bannerLabel = document.createElement('label'); bannerLabel.htmlFor = 'bannerBox'; bannerLabel.textContent = 'Banner HTML Code'; const bannerBox = document.createElement('textarea'); bannerBox.id = 'bannerBox'; bannerBox.rows = 6; bannerBox.placeholder = 'Enter banner HTML code here.'; bannerBox.value = localStorage.getItem('bannerCode') || ''; const backgroundImageInput = document.createElement('input'); backgroundImageInput.type = 'text'; backgroundImageInput.id = 'backgroundImageInput'; backgroundImageInput.placeholder = 'Enter background image URL'; backgroundImageInput.value = localStorage.getItem('chosenImage') || ''; const bgImgLabel = document.createElement('label'); bgImgLabel.htmlFor = 'backgroundImageInput'; bgImgLabel.textContent = 'Background Image URL'; const button = document.createElement('button'); button.textContent = 'Inject HTML Code'; button.addEventListener('click', injectHTMLCode); const shadowCheckbox = document.createElement('input'); shadowCheckbox.type = 'checkbox'; shadowCheckbox.id = 'dropShadowCheckbox'; shadowCheckbox.checked = textShadow !== 'none'; shadowCheckbox.addEventListener('change', toggleDropShadow); const colorPicker = document.createElement('input'); colorPicker.type = 'color'; colorPicker.id = 'fontColorPicker'; colorPicker.value = localStorage.getItem('chosenColor') || textColor; colorPicker.addEventListener('input', changeFontColor); const colorLabel = document.createElement('label'); colorLabel.htmlFor = 'fontColorPicker'; colorLabel.textContent = 'Font Color'; const shadowLabel = document.createElement('label'); shadowLabel.htmlFor = 'dropShadowCheckbox'; shadowLabel.textContent = 'Font Drop Shadow'; const additionalHtmlLabel = document.createElement('label'); additionalHtmlLabel.htmlFor = 'additionalHtml'; additionalHtmlLabel.textContent = 'Additional HTML'; const additionalHtml = document.createElement('textarea'); additionalHtml.id = 'additionalHtml'; additionalHtml.rows = 6; additionalHtml.placeholder = 'Enter additional HTML code here.'; additionalHtml.value = localStorage.getItem('additionalHtml') || ''; const usernameInput = document.createElement('input'); // Added username input usernameInput.type = 'text'; usernameInput.id = 'usernameInput'; usernameInput.placeholder = 'Enter your username'; usernameInput.value = localStorage.getItem('username') || ''; usernameInput.addEventListener('input', () => { localStorage.setItem('username', usernameInput.value.trim()); }); container.appendChild(usernameInput); // Moved username input above the inject button container.appendChild(button); container.appendChild(input); container.appendChild(bgImgLabel); container.appendChild(backgroundImageInput); container.appendChild(colorLabel); container.appendChild(colorPicker); container.appendChild(document.createElement('br')); container.appendChild(shadowLabel); container.appendChild(shadowCheckbox); container.appendChild(document.createElement('br')); container.appendChild(bannerLabel); container.appendChild(bannerBox); container.appendChild(document.createElement('br')); container.appendChild(additionalHtmlLabel); container.appendChild(additionalHtml); document.body.appendChild(container); loadSavedValues(); // Load saved input values on page load window.addEventListener('beforeunload', saveInputValues); // Save input values before leaving the page } window.addEventListener('load', addButtonAndInput); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址