您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
inoreader full content in iframe(需要配合辅助插件修改响应头,允许跨域iframe展示,例如 ignore-x-frame-headers 在tagArr,数组添加想要注入脚本文件夹名
// ==UserScript== // @name inoreader full // @namespace http://tampermonkey.net/ // @version 0.1 // @description inoreader full content in iframe(需要配合辅助插件修改响应头,允许跨域iframe展示,例如 ignore-x-frame-headers 在tagArr,数组添加想要注入脚本文件夹名 // @author You // @match https://www.inoreader.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=inoreader.com // @grant none // @license Apache-2.0 // ==/UserScript== (function() { 'use strict'; const tagArr=['feeddd-wechat-rss','github']//允许跨域的文件夹名放这里 function includesTags(){ const firstTag=document.querySelector('.article_tags').firstChild.textContent return tagArr.includes(firstTag) } let lastUrl setInterval(interval,500) function interval(){ //增加点击即开 onclick() const articleTitle=document.querySelector('.article_title ') if(!articleTitle||!includesTags()) { lastUrl = undefined return } const articleUrl=document.querySelector('.article_title a').href const articleArr = document.querySelector('#reader_pane').querySelectorAll('.article') if(lastUrl!=articleUrl){ lastUrl=articleUrl console.log('正在替换iframe:',articleUrl) let articleContent=document.querySelector('.article_content') const frame=createFrame(articleUrl,articleContent) Array.from(articleContent.childNodes).forEach((i)=>articleContent.removeChild(i)) articleContent.appendChild(frame) }else{ //todo 实时调整下高度?跨域好像不太行 } } function getNextArrHeight(element){ let arr=[] let next=element.nextElementSibling while (next!=null){ arr.push(next) next=next.nextElementSibling } return arr.reduce( (previousValue, currentValue) => previousValue + currentValue.clientHeight ,0) } function createFrame(url,articleContent){ console.log('click',url) const iframeElement = document.createElement(`iframe`); iframeElement.className = `articleEmbed`; iframeElement.src = url iframeElement.style.width="100%"; iframeElement.style.height=`calc(100vh - ${getNextArrHeight(articleContent)}px)`;//没啥意义,就先这样吧 iframeElement.style.height="100vh"; iframeElement.sandbox="allow-scripts allow-same-origin allow-popups"//用sandbox属性禁止跳转,reddit这种就没办法了 //iframeElement.security="restricted"//IE的禁止js的功能 return iframeElement } function onclick(){ const articleArr = document.querySelector('#reader_pane').querySelectorAll('.ar') articleArr.forEach((i)=>{ if(!i.querySelector('.myClickButton')){ const title=i.querySelector('.article_header_title').textContent const div=document.createElement('div') div.style.width="100px" div.style.height=i.clientHeight+"px" const blank=document.createElement('div') blank.textContent=" " blank.style.width="100%" blank.style.height="10%" const a=document.createElement('a') a.type="button" a.classList.add("myClickButton"); a.href=i.querySelector('a').href a.target="_blank" const a2=document.createElement('button') a2.textContent='open' a2.style.width="100%" a2.style.height="40%" a.appendChild(a2) //a.onclick=()=>window.open(i.querySelector('a').href) // a.addEventListener('mousedown', ()=>{ // if (event.button == 0) { // console.log("鼠标左键!") // window.open(i.querySelector('a').href) // }else if (event.button == 2){ // console.log("鼠标右键!"); // const test=document.createElement('a') // test.href=i.querySelector('a').href // const middleClick = new MouseEvent("click", { "button": 1, "which": 4 }); // test.dispatchEvent(middleClick); // }else if(event.button == 1){ // console.log("鼠标滚轮!"); // } // }) const button=document.createElement('button') button.textContent='copy' button.style.width="100%" button.style.height="40%" button.onclick=()=>{ if (navigator.clipboard) { navigator.clipboard.writeText(`[${title}](${i.querySelector('a').href})`); } } div.appendChild(a) div.appendChild(blank) div.appendChild(button) i.firstElementChild.appendChild(div) } }) } })();