Replace text content in a webpage(Revision)
< Feedback on Replace content in a webpage(Revision)
请更新脚本再试一下,因为没有账号,不确定是否修复。不登录账号我试了下,之前确实因为计算高度导致弹框定位到非常下面,看不到弹框内容,只能看到遮罩。
@linmii 说道: 请更新脚本再试一下,因为没有账号,不确定是否修复。不登录账号我试了下,之前确实因为计算高度导致弹框定位到非常下面,看不到弹框内容,只能看到遮罩。
弹窗的问题已经可以了,但出现了另外一个问题,就是在店小秘里面,替换时,直接把输入框中的内容全部给替换成空的了。
我改良了下, 弹出框的高度小了点,改成150正好。 dialogDiv.style.width = '250px'; dialogDiv.style.height = '150px'; 我因为只需要替换文本框,所以我这边代码就只对文本框进行了处理。以下是我改动的地方。
function replaceContent() { let findText = document.querySelector("#lm-find-content").value; let replaceText = document.querySelector("#lm-replace-content").value; if ("" !== findText && "" !== replaceText) { var list=document.getElementsByTagName("input"); var textCount = list.length; for(var i = 0;i < textCount;i++){ var txt = list[i].value; if(list[i].type=="text" && "" !== txt){ var ret = txt.replace(new RegExp(findText, "gm"), replaceText); console.log(ret); list[i].value=ret } } /let body = document.querySelector("body"); body.innerHTML = body.innerHTML.replace(new RegExp(findText, "gm"), replaceText); // 设置替换前的输入内容 document.querySelector("#lm-find-content").value = findText; document.querySelector("#lm-replace-content").value = replaceText; // 重新绑定替换点击事件 document.querySelector("#lm-replace-btn").addEventListener("click", replaceContent); document.querySelector("#lm-r-modal").addEventListener("click", closeBindEvent); rImgBindEvent();/ } }
body.innerHTML.replace,对文本框不是很友好,好像会把body的结构改掉。所以对文本看能不能进行区别对待。
https://photos.app.goo.gl/2hcXo54ngFsTxseh9 稍微改了下,基本已经满足日常需求了。
www.1688.com,登录账号后,页面顶部点”我的阿里“->“已买到的货品”页面,会出现有两个R的图片,两个都能点。还有一些其他的登录页面也有这情况。
今天又发现一个问题,此功能的弹窗与bootstrap的模态框有冲突,bootstrap的模态框中有个tabindex属性。楼主看能不能解决下。
@ulpyuxa 说道: 今天又发现一个问题,此功能的弹窗与bootstrap的模态框有冲突,bootstrap的模态框中有个tabindex属性。楼主看能不能解决下。
模态框有什么冲突?我在bootstrap官网bootstrap官网测试两者互不影响
@ulpyuxa 说道: www.1688.com,登录账号后,页面顶部点”我的阿里“->“已买到的货品”页面,会出现有两个R的图片,两个都能点。还有一些其他的登录页面也有这情况。
有多个R图标的情况确实存在,是因为这个页面通用iframde引入了其他的页面,我试过用document.body, document.querySelector("body"), document.getElementsByTagName("body")[0]来设置R图标,但是都一样,每个iframe页面都有自己的body,这个脚本是针对所有网址(*),只要有body的页面就会有一个R图标,这个暂时没想到怎么去处理
@linmii 说道:
@ulpyuxa 说道: 今天又发现一个问题,此功能的弹窗与bootstrap的模态框有冲突,bootstrap的模态框中有个tabindex属性。楼主看能不能解决下。
模态框有什么冲突?我在bootstrap官网bootstrap官网测试两者互不影响
在官网上面能弹出替换的框,但是是不能输入查找和替换中输入。
@ulpyuxa 说道:
@linmii 说道:
@ulpyuxa 说道: 今天又发现一个问题,此功能的弹窗与bootstrap的模态框有冲突,bootstrap的模态框中有个tabindex属性。楼主看能不能解决下。
模态框有什么冲突?我在bootstrap官网bootstrap官网测试两者互不影响
在官网上面能弹出替换的框,但是是不能输入查找和替换中输入。
能具体说明下吗?或者发个图?我在官网试了能输入并且替换成功了,图片一直上传失败了
我现在用你的代码改进了一下,修复了好几个问题,用我修改后的代码运行比较正常,没有再出现多个R图标。已经解决的bug如下:
大神如果同意的话,我可以放到论坛里面去,目前这份代码我没有进行共享。 或者大神需要的话,可以发给大神进行发布。 或者就我一个人用也行。 :D :D
你只有论坛的账号吗?没有Greasyfork账号?(用你的用户名没有搜索到)你可以注册一个Greasyfork账号,我把添加添加到脚本作者里面。 或者你给我发布也可以
大神,我已经发布了,非公开脚本,版权属于你,我就不发不公开版了,链接在这里:https://greasyfork.org/zh-CN/scripts/395434-%E6%9B%BF%E6%8D%A2%E7%BD%91%E9%A1%B5%E4%B8%AD%E7%9A%84%E5%86%85%E5%AE%B9-%E6%94%B9
店小秘的网页不能弹出替换的框
如题,店小秘页面,登录账号后,产品、订单等页面不会弹出输入框,