我正在编写一个工作项目,当页面加载时,它将通过ajax查询抓取一个页面,单击按钮它将抓取另一个页面。我已经检查了 ajax 的语法,似乎可以正常工作,在 Chrome 和 FireFox 中测试了相同的代码。
来自 ie 开发工具的错误如下:
SCRIPT1010: Expected identifier
File: admin, Line: 40, Column: 15
我只是不明白为什么它在没有代码的地方给我一个错误:
</head>
<body class="default-bg">
<div class="container">
<div class="container-fluid">
<div id="header">
<div class="jumbotron card-primary">
<!--ie errors here--> <h2 class="text-center">Administration Panel</h2>
</div>
</div>
</div>
</div>
...
<script>
$(document).ready(function(){
$.ajaxSetup({ cache: false });
$("button#content-approval-button").addClass('active-btn');
getPage('cap');
});
function getPage(pageToGet){
$.ajax({
url:"../includes/scripts/php/actions/pages.php",
type:"POST",
cache:false,
data:"&page=" + pageToGet,
success:function(r){
$('#page-content').html(r);
},
error:function(r){
alert("failed");
}
});
}
</script>
问题是,当页面加载并且您尝试单击内置 JS 的内容并且 IE 开发工具很糟糕时,它会引发更大、更讨厌的配合。 这是页面中的脚本标记我尝试加载功能失败,我觉得这是由于 1010 错误
<script>
var output="";
var md=window.markdownit({
html:true,
typographer:true,
xhtmlout:true,
breaks:true,
linkify:true
});
md.use(window.markdownitEmoji);
md.use(window.markdownItAttrs);
md.use(window.markdownitAbbr);
md.use(window.markdownitDeflist);
md.use(window.markdownitIns);
md.use(window.markdownitMark);
md.use(window.markdownitSub);
md.use(window.markdownitSup);
md.use(window.markdownitMultilineTbl);
md.renderer.rules.table_open = function(tokens, idx) {
return '<table class="table table-striped">';
};
function parseMarkDown(){
var input = $("#input").val();
var semiSanitized = input.replace(/javascript:/igm," javascript code is disabled ");
//the code sanitation will finish on the sever side with removal of script tags.
//client side it "sanitizes the page as well as input... thus making the page break.
output = md.render(semiSanitized);
$('#output').html(output);
}
function updateTitle(){
var i = $('#title').val();
var semiSanitized = i.replace(/javascript:/igm," javascript code is disabled ");
$('#c-title').text(i);
}
function insertByButton(startEle,endEle){
var inV = document.getElementById('input');
const {value, selectionStart, selectionEnd} = inV;
const beforeSelection = value.substring(0, selectionStart);
const selection = value.substring(selectionStart, selectionEnd);
const afterSelection = value.substring(selectionEnd);
inV.value = beforeSelection + startEle + selection.trim() + endEle + afterSelection;
parseMarkDown();
inV.focus();
if (selectionEnd == selectionStart){
var i = beforeSelection + startEle;
inV.setSelectionRange(i.length,i.length);
}else{
inV.setSelectionRange(selectionEnd,selectionEnd);
}
}
function buildPageTemplate(){
var inV = document.getElementById('input');
var h = "some proprietary text\n";
h += "# "+$("#title").val()+'{class="jumbotron card-primary card-shadow card-bottom-spacer-md text-center" id="doc-title" title="'+$('#title').val()+'"}\n';
inV.value = "";
inV.value = h;
parseMarkDown();
}
下面是一些应该将文本插入文本区域的按钮...
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="btn-toolbar card-left-spacer-sm card-bottom-spacer-sm">
<button id="ins-template" class="btn btn-default" title="Insert page template" onclick="buildPageTemplate();"><img src="../includes/images/png/glyphicons-703-file-plus.png" alt="insert page template code"></button>
<button id="ins-heading" class="btn btn-default" title="Insert # for h1-h6" onclick="insertByButton('#','');"><img src="../includes/images/png/glyphicons-106-text-height.png" alt="insert # for h1-6"></button>
<button id="ins-css-styler" class="btn btn-default" title="Insert an attribute tag" onclick="insertByButton('','{class="" id="" title=""}');"><img src="../includes/images/png/glyphicons-67-tags.png" alt="insert attribute tag snippet"></button>
<button id="ins-code-block" class="btn btn-default" title="Insert a code block" onclick="insertByButton('\n``` \n','\n```\n');"><img src="../includes/images/png/glyphicons-119-embed-close.png" alt="insert code block"></button>
<button id="ins-quote" class="btn btn-default" title="Insert block quote" onclick="insertByButton('\n> ','\n>_-- [attributation]_{.pull-right}');"><img src="../includes/images/png/glyphicons-547-quote.png" alt="insert block or regular quote"></button>
<button id="ins-ulist" class="btn btn-default" title="Insert an unordered list" onclick="insertByButton('\n- ','');"><img src="../includes/images/png/glyphicons-115-list.png" alt="insert an unordered list with bullet points"></button>
<button id="ins-olist" class="btn btn-default" title="Insert an ordered list" onclick="insertByButton('\n1. ','');"><img src="../includes/images/png/glyphicons-710-list-numbered.png" alt="insert ordered list with numerical values"></button>
<button id="ins-code-inline" class="btn btn-default" title="Insert inline code snippet" onclick="insertByButton('`','`');"><img src="../includes/images/png/glyphicons-118-embed.png" alt="insert code inline with text"></button>
<button id="ins-bold" class="btn btn-default" title="Insert bold text" onclick="insertByButton('**','**');"><img src="../includes/images/png/glyphicons-103-bold.png" alt="insert bolded text"></button>
<button id="ins-underline" class="btn btn-default" title="Insert underlined text" onclick="insertByButton('++','++');"><img src="../includes/images/png/glyphicons-104-text-underline.png" alt="insert underlined text"></button>
<button id="ins-italic" class="btn btn-default" title="Insert italicized text" onclick="insertByButton('_','_');"><img src="../includes/images/png/glyphicons-102-italic.png" alt="insert italicized text"></button>
<button id="ins-strike" class="btn btn-default" title="Insert strike though text" onclick="insertByButton('~~','~~');"><img src="../includes/images/png/glyphicons-105-text-strike.png" alt="insert strike through text"></button>
<button id="ins-highlight" class="btn btn-default" title="Insert highlighted text" onclick="insertByButton('==','=={.highlight-yellow}');"><img src="../includes/images/png/glyphicons-236-pen.png" alt="insert highlighted text"></button>
<button id="ins-sub" class="btn btn-default" title="Insert subscript text" onclick="insertByButton('~','~');"><img src="../includes/images/png/glyphicons-604-subscript.png" alt="insert subscript text"></button>
<button id="ins-super" class="btn btn-default" title="Insert superscript text" onclick="insertByButton('^','^');"><img src="../includes/images/png/glyphicons-603-superscript.png" alt="insert superscript text"></button>
</div>
</div>
</div>
正如之前提到的,所有这些代码在其他浏览器中都运行良好,但由于该公司主要使用 IE11,我被迫为其开发......对可能出现问题的任何建议?
最佳答案
您的问题在这里:
const {value, selectionStart, selectionEnd} = inV;
您不能将值破坏为变量列表。任何版本的 IE 都不支持它。 请参阅此处了解更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
关于javascript - IE 11 在 <h1> 元素的选项卡中间意外抛出 js 中断错误 1010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49990250/