让我们假设我们有一个页面,比如说:
<html>
<body>
(111) 111.1111
<br />
(222) 222.2222
<br />
333 333 3333
<br />
444-444-4444
<script>
// replace all phone numbers with our own
var re = /\d{3}[().-\s[\]]*\d{3}[().-\s[\]]*\d{4}/g;
var sourcestring = document.documentElement.innerHTML;
var replacementpattern = "(111) 867-5309";
var result = sourcestring.replace(re, replacementpattern);
document.documentElement.innerHTML = result;
</script>
</body>
我们的页面正常加载,但它显示的原始电话号码可能是1/4秒(非常明显)。
有没有办法基本上停止显示其他数字,并且在更换时只显示(111)867-5309字符串?
也许一个解决方案就是要有一些内容可以解析html(但在显示之前)?
编辑:
为了澄清,除了javascript(将通过src =加载)之外,我无法访问HTML的其余部分。
答案 0 :(得分:1)
如果您可以修改页面以移动脚本,则可以使其正常工作。
这样的事情:
<html>
<head>
<script>
function replacePhoneNumbers () {
// replace all phone numbers with our own
var re = /\d{3}[().-\s[\]]*\d{3}[().-\s[\]]*\d{4}/g;
var sourcestring = document.documentElement.innerHTML;
var replacementpattern = "(111) 867-5309";
var result = sourcestring.replace(re, replacementpattern);
document.documentElement.innerHTML = result;
}
document.addEventListener('DOMContentLoaded', replacePhoneNumbers);
</script>
</head>
<body>
...
</body>
</html>
如果你不能移动你的剧本,那么你无能为力;在内容已经呈现之前,它不会被执行。