我有一个外部库jQuery.aSimpleTour(一个web app tour插件),我已经包含在一个角度应用程序中。
我当前的网页地址是/#/ app / account-settings-confirm
我引用的js包含如下。
<script src="resources/js/simpletour/jquery.aSimpleTour.js"></script>
打开页面后,我一直收到以下Firefox FireBug控制台错误。
Syntax error - invalid regular expression flag a
/app/account-settings-confirm
/ \
|
-----
jquery.aSimpleTour.js第1行第5列是错误的触发点。
这是第13行到第13行的结果:
1 /**
2 * jQuery aSimpleTour
3 *
4 * @version 1.0.6
5 * @description jQuery Tour web
6 * @author alvaro.veliz@gmail.com
7 */
8
9 (function($) {
10
11 var settings = {
12 data: [],
13 autoStart: false,
...
这意味着什么?我该如何解决这个问题?
答案 0 :(得分:0)
<强>解决方案强>
为了解决这个问题,我添加了charCount方法,以便在库的load事件处理程序中使用。
在加载处理程序中,我修改了解析部分,以便在我的应用程序在url中使用/#/的上下文中正确处理两个哈希字符。
修改后的代码
function charCount(str, chr){
return str.length - str.replace(new RegExp(chr, 'g'), "").length;
}
$(window).load(function(){
var tourStep;
loc = window.location.href;
numHashes = charCount(loc, '#');
if (loc.indexOf("/#/") === -1 && numHashes == 1)
tourStep = loc.substr(1).split('=');
else if (numHashes == 2)
{
str = loc.substr(loc.indexOf('#')+1);
tourStep = (str.substr(str.indexOf('#')+1)).split('=');
}
if (typeof(tourStep) != 'undefined' && typeof(eval(tourStep[0])) != 'undefined' && typeof(eval(tourStep[1])) != 'undefined') {
$.aSimpleTour(eval(tourStep[0]), tourStep[1]);
}
});