我想更改一些 dom 内容,使所有输入字段值都是""
在用户可以看到网页之前先对其进行显示。我该怎么做?有什么办法可以做到这一点吗?
谢谢。
您需要一个运行于文档开始 https://developer.chrome.com/extensions/content_scripts#run_at,以及以下两种方法之一:
- MutationObserver (the docs https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) but it'll slow down page loading:
-
如何在页面加载时更改 HTML 内容 https://stackoverflow.com/a/39334319
- 加载后立即修改页面元素 https://stackoverflow.com/questions/24728162/modify-page-element-as-soon-as-its-loaded
-
添加 CSS 样式覆盖以使 INPUT 文本透明,并在加载页面时清除元素并删除样式:
清单.json:
"content_scripts": [{
"matches": ["<all_urls>"],
"run_at": "document_start",
"all_frames": true,
"js": ["content.js"]
}],
内容.js:
// document is empty now so we'll only add the style
var style = document.documentElement.appendChild(document.createElement('style'));
style.textContent = 'input {color: transparent !important;}';
// once DOM is ready clear the inputs
document.addEventListener('DOMContentLoaded', function() {
var inputs = document.getElementsByTagName('input');
for (var i = inputs.length; --i >= 0; ) {
var input = inputs[i];
if (input.value) {
input.value = '';
}
}
style.remove();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)