气宇轩昂的萝卜 · 加解密与HTTPS(3) - 湘王 - 博客园· 3 天前 · |
慷慨的小刀 · 【机器学习】R语言进行机器学习方法及实例_r ...· 4 月前 · |
活泼的瀑布 · vba if语句多个条件同时满足-掘金· 1 年前 · |
率性的黄瓜 · ffmpeg播放器实现详解 - ...· 1 年前 · |
我正在检查URL,看看它是否包含或包含一个
?
,以控制窗口中的散列弹出状态。所有其他浏览器都没有问题,只有IE有问题。
当我尝试以这种方式加载时,调试器显示以下错误:
对象不支持属性或方法“”
includes
“”
当我通过popstate加载页面时,我没有得到任何错误。
$(document).ready(function(e) {
if(window.location.hash) {
var hash;
if(window.location.hash.includes("?")) {
alert('I have a ?');
hash = window.location.hash.substring(window.location.hash.indexOf('#') + 0,window.location.hash.indexOf('?'));
}else {
hash = window.location.hash;
if (hash=="#DRS" || hash=="#DRP" || hash=="#DFFI" || hash=="#DCI" || hash=="#DCP" || hash=="#DRP" || hash=="#DRMA" || hash=="#EICS" || hash=="#ORG"){
$(hash+'Content').addClass('pageOn').removeClass('pageOff');
}else {
$('#homeContent').addClass('pageOn').removeClass('pageOff');
} else {
$('#homeContent').addClass('pageOn').removeClass('pageOff');
$(window).on('popstate', function() {
var hash;
if(window.location.hash.includes("?")) {
hash = window.location.hash.substring(window.location.hash.indexOf('#') + 0,window.location.hash.indexOf('?'));
}else {
hash = window.location.hash;
if (hash=="#DRS" || hash=="#DRP" || hash=="#DFFI" || hash=="#DCI" || hash=="#DCP" || hash=="#DRP" || hash=="#DRMA" || hash=="#EICS" || hash=="#ORG"){
$(this).navigate({target: $(hash+'Content')});
if(window.location.hash.includes("?")) {
}else{
location.href = location.href+'?';
}else {
$(this).navigate({target: $('#homeContent')});
});
根据
MDN reference page
的说法,Internet Explorer不支持
includes
。最简单的替代方法是使用
indexOf
,如下所示:
if(window.location.hash.indexOf("?") >= 0) {
}
就像在Internet Explorer中一样,javascript方法"includes“不支持,这会导致如下错误
dijit.form.FilteringSelect TypeError:对象不支持属性或方法“includes”
因此,我将JavaScript字符串方法从"includes“更改为"indexOf”,如下所示
//str1 doesn't match str2 w.r.t index, so it will try to add object
var str1="acd", str2="b";
if(str1.indexOf(str2) == -1)
alert("add object");
alert("object not added");
}
IE11实现了String.prototype.includes,那么为什么不使用官方的Polyfill呢?
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
if (typeof start !== 'number') {
start = 0;
if (start + search.length > this.length) {
return false;
} else {
return this.indexOf(search, start) !== -1;