【新浪SAE】去掉烦人的实名认证提示(讨论)
HTML页面去除小尾巴
最近新浪的SAE开始实名认证(http://sae.sina.com.cn/ 新注册还是免费,但它那么坑我会打广告么)。
不认证的话访问服务器上的页面会提示认证,如下图:
吐槽:
实名认证又是拍照,又是需要各种资料,担心广告骚扰与隐私各种balabala问题…
而且本来就是因为懒得本地配置服务器才用SAE(烦人的开机启动SQL服务、各种安全隐患的Apache…,丢掉丢掉统统丢掉~),当初顺便玩了把微信平台的机器人应答,其实也就自己一个人在访问,因此打算流量用完再做打算…
度娘里搜到的解决办法又是各种不相干,感到烦躁之余自己稍微看了下,是SAE自动在未认证的页面尾部加上了一个<div>
<div style="z-index:2147483647;position:fixed;_position:absolute;top:0;left:0;right:0;padding:12px;background-color:rgba(0,0,0,0.5);filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7F000000,endcolorstr=#7F000000);color:#fff;text-align:center;font-size:16px;font-family:simsun,serif;cursor:default;"><p style="margin:0;padding:0;">该页面的提供者尚未完成<a style="text-decoration:none;color:#37afe4;" target="_blank" href="http://sae.sina.com.cn/?m=faq&a=view&doc_id=22">实名认证</a>,您的访问可能存在风险</p><a style="position:absolute;right:12px;top:50%;font-size:20px;color:#fff;border:none;margin:0;padding:0;;margin-top:-10px;line-height:20px;background:none;cursor:pointer;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;outline:none;" onclick="this.parentNode.style.display='none'">×</a></div>本着注入的想法,直接在页面尾部加上了HTML注释标签 "<!--"
</body> </html> <!--这里就插一半,浏览器能自动补全另一半这样的话静态页面便能注释掉烦人的小尾巴了
后面发现IE跟chrome处理半个标签的方式不太一样,IE还是有些问题
不知道HTML是否能在结尾添加上类似 EOF 这类结尾标志,如有更好的办法请在留言处讨论下哈,我再加进来
@Beta3.0 补充:静态页面我原来是设置最后一个div的display为none。 那么应该可以尝试在JS里取出最后个DIV删掉
数据页面待解决
但让我比较困扰的是SAE在服务器返回的JSON数据页面最后也附上了小尾巴,导致正常的JSON包变得无法解析。
而JSON貌似并不支持注释(包括/* 与// 只能用于JavaScript),以下就尝试了在结尾加上/*
此外 echo "\n//"; 也试了,同样不行。
这里求各位大哥帮我支两招
权宜之计(字符串过滤)
既然有人需要,这里就贴下目前我对数据页面的解决方式。
1) 在php数据页面里加入结束标志,我这里用换行加注释符 "\r\n<!--",代码如下
1 …… 2 3 echo json_encode($json_arr); 4 echo "\r\n<!--"; 5 6 ……
2) 在JS数据接收的时候进行字符串截取。只接受 "<!--" 前的数据 作为JSON,代码如下
1 $.ajax({ 2 type: 'post', 3 url:'.XXXX.php', 4 5 //注意:这里不能直接用JSON格式传输 6 //dataType: "json", 7 //contentType: "application/json; charset=utf-8", 8 9 dataType: "application/x-www-form-urlencoded", 10 contentType: "application/x-www-form-urlencoded; charset=utf-8", 11 complete:function(data){ 12 //可以通过控制台查看下过滤效果 13 console.log(data.responseText); 14 console.log(data.responseText.split('<!--')[0]); 15 console.log(JSON.parse(data.responseText.split('<!--')[0])); 16 data = JSON.parse(data.responseText.split('<!--')[0]) 17 //data = JSON.parse(data.responseText); 18 for(one in data.……){ 19 …… 20 } 21 } 22 } 23 })