如何解决未捕获的SyntaxError:内联JS上的无效或意外令牌浏览器上的JS脚本中断
我面临的一个问题令人困惑,实际上使我精疲力尽了数小时。 我尝试了很多不同的事情,已经做过并且仍在进行各种调试技术,但是我很累,会寻求任何形式的帮助。
如果有人有任何有用的想法/建议来解开我,我将发布一些非常基础的入门知识,并且如果需要的话,我可能会添加更多信息或更多代码。
我正在Joomla网站和自定义组件视图上工作,我在HTML输出的某个位置放置了一个内联jQuery脚本。
问题在于,尽管一切都可以在我的本地主机上正常运行,但是当我在线上传时,javascript会在试图创建包含html的变量时中断。然后,浏览器将使用</script>
自动关闭script标签,其余的js代码将输出为html。
例如,以下脚本:
<script>
(function($)
{
$(document).ready(function()
{
var loader = '<div id="loader"><div>';
});
})(jQuery);
</script>
最终将如下所示:
<script>
(function($)
{
$(document).ready(function()
{
var loader = '<div id="loader">';
</div></script>
});
})(jQuery);
</script>
*我刚刚得到的另一个线索是,问题似乎出在我将其上传到Litespeed服务器上时。 我使用Litespeed在2台不同的服务器上进行了测试,然后在1台Apache上进行了测试。 在Apache服务器上的服务器工作正常(例如在我的本地主机上)。
这是我完整的内联脚本,以防万一有人在赶上我所缺少的任何内容。
(function($)
{
$(document).ready(function()
{
function capitalizefirstLetter(string) {
return string.charat(0).toupperCase() + string.slice(1);
}
var obj = <?PHP echo json_encode($availableTags); ?>;
var searchForm = $('#adminForm');
var predefinedTags = $('.tags-cloud.popular-tags .li-item');
var searchTermId = '';
var oldSearchTermId = '';
var categories = <?PHP echo json_encode( $search_categories ); ?>;
var categoriesAction = '<?PHP echo (int)$sel_categories_option; ?>';
var list_limit = '<?PHP echo (int)$list_limit; ?>';
var list_limitstart = 0;
var list_order_by = '<?PHP echo $list_order_by; ?>';
var list_order_dir = '<?PHP echo $list_order_dir; ?>';
var menuItem = '<?PHP echo (int)$menuItem; ?>';
var show_image = '<?PHP echo (int)$show_image; ?>';
var show_date = '<?PHP echo (int)$show_date; ?>';
var which_date = '<?PHP echo $which_date; ?>';
var show_category = '<?PHP echo (int)$show_category; ?>';
var searchResults;
var loadMore = false;
var loader = "";
// Form submit
$(searchForm).on('submit',function(e) {
searchTermId = $('#sm-search-term-id').val();
e.preventDefault();
ajaxSearchArticles();
});
$('.search-order-selects').on('change',function(e) {
searchTermId = $('#sm-search-term-id').val();
list_order_by = $('#search-order').val();
list_order_dir = $('#search-order-dir').val();
list_limitstart = 0;
ajaxSearchArticles();
});
$(predefinedTags).on('click',function(e) {
searchTermId = $(this).attr('data-tagid');
$( "#sm-search" ).val( $(this).text() );
$( "#sm-search-term-id" ).val( searchTermId );
$( "#sm-search-description" ).html( '(' + $(this).attr('total_articles') + ' Total Articles)');
ajaxSearchArticles();
return false;
});
$('#search-results').on('click','#load-more-div',function() {
searchTermId = $('#sm-search-term-id').val();
list_limitstart = parseInt(list_limitstart) + parseInt(list_limit);
loadMore = true;
ajaxSearchArticles();
});
function appendResults() {
var html = '';
oldSearchTermId = searchTermId;
var l = parseInt(list_limit);
$(searchResults).each(function(i,e) {
var itemi = list_limitstart + i;
if (i < l) {
html += '<div id="artid-'+e.id+'" class="sm-search-result g-block s-item-'+itemi+'">';
html += '<div class="sm-search-result-content">';
if (show_image == '1') {
html += '<a href="'+ e.url +'" title="'+e.title+'" target="_blank">';
html += '<div class="smrc-image-holder"><img src="' + e.images + '" alt="'+e.title+'" /></div></a>';
}
html += '<div class="smrc-text-block"><a href="'+ e.url +'" title="'+e.title+'" target="_blank"><h3>'+e.title+'</h3></a><p>'+e.introtext+'</p>';
if (show_date || show_category) {
html += '<div class="item-Meta">';
if (show_date) {
var date = e.modified;
if (which_date === 'created') {
var date = e.created;
}
html += '<span class="item-date"><i class="fa fa-calendar-o" aria-hidden="true"></i> '+ date +'</span>';
}
if (show_category) {
html += '<span class="item-cat">in '+e.category +'</span>';
}
html += '</div>';
}
html += '</div></div></div>';
}
if (i === l) {
html += '<div id="load-more-div" class="sm-search-result load-more g-block">';
html += '<div class="sm-search-result-content" style="display: flex;align-items: flex-end;justify-content: center;height: 100%;">';
html += '<div class="load-more-results flex-item"><span>Load More...</span></div>';
html += '</div></div>';
}
});
html += '<div class="clear clearfix"></div>';
if (loadMore) {
$('#search-results').append(html);
} else {
$('#search-results').html(html);
}
loadMore = false;
}
// Autocomplete
$( function() {
var results = true;
$( "#sm-search" ).autocomplete({
minLength: 3,source: obj,focus: function( event,ui ) {
if (results) {
$( "#sm-search" ).val( ui.item.label );
}
event.preventDefault();
return false;
},select: function( event,ui ) {
if (results) {
$( "#sm-search" ).val( ui.item.label );
$( "#sm-search-term-id" ).val( ui.item.value );
$( "#sm-search-description" ).html( '(' + ui.item.total_articles + ' Total Articles)');
}
event.preventDefault();
$(searchForm).submit();
return false;
},response: function(event,ui) {
if (ui.content.length === 0) {
results = false;
var res = { label: "no results",value: 0 };
ui.content.push(res);
} else {
results = true;
}
}
}).autocomplete( "instance" )._renderItem = function( ul,item ) {
if (results) {
return $( "<li>" )
.append( "<div><strong>" + capitalizefirstLetter(item.label) + "</strong> <small>(" + item.total_articles + " articles)</small></div>" )
.appendTo( ul );
} else {
return $( "<li>" )
.append( "<div>" + item.label + "</div>" )
.appendTo( ul );
}
};
});
// Ajax call
function ajaxSearchArticles() {
if (!searchTermId) {
$('#empty-message').text('No Tags Defined!');
setTimeout(function() {
$('#empty-message').text('');
},3000);
return false;
}
$('body').append(loader);
if (searchTermId !== oldSearchTermId) {
list_limitstart = 0;
}
var xhrRequest = {
'option' : 'com_rabattdatabase','task' : 'RabattAjax.ajaxReceiver','action' : 'customSearch','tagid' : searchTermId,'orderby' : list_order_by,'orderdir': list_order_dir,'limit' : list_limit,'limitstart' : list_limitstart,'cats' : categories,'itemid' : menuItem,'catswhat': categoriesAction,'<?PHP echo JSession::getFormToken();?>' : 1,};
$.ajax({
context : this,type : 'POST',data : xhrRequest,success : function(response) {
var response = $.parseJSON(response);
searchResults = response.data;
if (response.success == true) {
appendResults();
} else {
$('#search-results').html("<h4>We Couldn't process your request!</h4>");
}
}
}); // End Ajax
}
})
})(jQuery);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。