HTML“返回上一页” 无效的原因

目录

一、问题描述(背景)

二、探索

2.1 自己摸索

2.2 求助大佬

三、总结:


一、问题描述(背景)

(工具:myeclipse10.7,工作空间编码UTF-8,HTML字符集UTF-8,Chrome)

为了实现返回上一页的效果,我写的代码是:

<a href="url" οnclick="javascript:window.history.go(-1);return false;">返回上一个页面</a>

但是去发现没有生效,回不去,不知道怎么回事?然后我去百度找了很多资料,各种情况都有;很多是说:“因为浏览器处理不同,需要加上return false;”,(return false是为了禁用href属性)但是我的加了都没效果!

 

二、探索

2.1 自己摸索

既然百度没有给我答案,那还得靠自己。

因为我怀疑是我的英文拼写出错了,所以我就把其他页面的相同语句复制过来,如下:

<a href="url" οnclick="javascript:window.history.go(-1);return false;">返回上一个页面</a>

<a href="url" onclick="javascript:window.history.go(-1);return false;">javascript:window.history.go(-1);return false;</a>

这里看起来没什么不一样,但是在我的编辑器里面却差的有点远!!

如上图,两行代码字体风格都不一样……咋这么秀呢???然后第一行左侧有警告,第二行没有!!!

看了下警告是onclick,我把鼠标分别放在这两行的onclick上,编辑器提示是不一样的,如下:

 第一行:

Multiple annotations found at this line:
    - Undefined attribute name 
     (οnclick).
    - Undefined attribute name 
     (οnclick).

 第二行:

Attribute : onclick
Data Type : EVENT

其实第一行的警告还是挺常见的,因为IDE是myeclipse10.7,有点年代了,经常会识别HTML5 的标签,所以我也没有特别去注意这个问题。我关注的是为什么这两行代码的onclick会显示不一样??

我去浏览器实际运行了下,发现,正如IDE警告一样,第一行不能实现“返回上一页”,第二行却可以!!灵异事件,太诡异!!

 

2.2 求助大佬

虽然我发现了这两行代码有所不同,但是却还是不知所以,毫无办法。因此又去StackOverflow问人,然后有大佬说是编码问题,如下图:

看完后我若有所思,去看了下我再StackOverflow发的示例代码:请注意我全出来的红色部分!

这里的代码是用markdown语言写的,内容是直接从IDE复制过来,这里就显示了不同。加之根据大佬的回答可知是onclick中的字母o的问题,第一行是UTF-8格式的,第二行的是ASCII格式的,所以IDE里面会报警告。看到这里我恍然大悟,突然想起之前也有去网址复制别人代码,然后出现类似问题的情况,之前的是标签之前的空格的格式是不一样的,然后IDE直接就报错了,而不是警告;而这里是在标签里面,形式上像是标签的属性,但是因为onclick中的字母o的编码问题,所以直接将这个属性是未标记的属性,仅仅是报警告。

 

三、总结:

兜兜转转这么久,总算是解决了,之前还以为是 javascript:window.history.go(-1);return false; 的浏览器兼容性问题,看来不是,仅仅是字符编码问题,真的是要郁闷死了。

收获:复制代码到编辑器,很容易出现编码问题,是因2种编码不一致造成的,很多时候从网页复制出来的也是这样。如果代码不多的话,最好自己敲下来。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值