而sarr[1]会将替换成unicode编码的字符

时间:2022-06-04 08:50:37

早上7点起床,又写了一篇小说发在了起点网上,有兴趣的可以看看。点击这里

忙完后,继续操练,刚开始发明本身答题的速度有些慢,可能是因为对付html,javascript常识不是很精通,但是话又说回来,谁又能一开始就将所有的常识一下子就掌握的很熟练呢?

第六题。

标题问题:

1 function escape(s) { 2 // Slightly too lazy to make two input fields. 3 // Pass in something like "TextNode#foo" 4 var m = s.split(/#/); 5 6 // Only slightly contrived at this point. 7 var a = document.createElement(‘div‘); 8 a.appendChild(document[‘create‘+m[0]].apply(document, m.slice(1))); 9 return a.innerHTML; 10 }

分析:

这个escape的感化就是:将s凭据#支解,然后创建div,将s支解成的数组的第二个开始挂接在div上。那么第8行的document[‘create‘+m[0]].apply(...)中的‘create‘+m[0]是document的一个函数,我检察了document的 官方文档

得知应该是createComment函数,所以可以开始TRY了。

TRY:

第一次:Comment#,功效显示<!---->,故后续应该闭合<括号。

第二次:Comment#><script>alert(1)</script>,OK!

效果:

而sarr[1]会将替换成unicode编码的字符

第七题:

标题问题: