我使用$('.class').load('url #id')
,但它只获取HTML代码,或者我做错了什么)
如何从页面获取JS?
我使用此代码的网站:http://vbtes.p.ht/Amira/#!contacts(没有js,请勿使用标签页。)
拥有JS:http://vbtes.p.ht/Amira/#!contacts
var sm = 1;
var oldactivemenu = 0;
var selectedmenu = '';
var elemthis;
function ocmenu(heshatr, thiselem) {
elemthis = thiselem;
if (sm == 1) {
location.hash = '!' + heshatr;
}
}
$(function () {
$(window).hashchange(function () {
// Alerts every time the hash changes!
var linkmenuurl = $(location).attr('href').split("#!")[1];
if (location.hash == '') {
linkmenuurl = '';
}
if (sm == 1 && selectedmenu !== linkmenuurl) {
$('.active').removeClass('active');
$(elemthis).addClass('active');
if ($(elemthis).parent('.main-menu__item_level_1')) {
$(elemthis).parent().parent().parent().children('.main-menu__item-link').addClass('active');
}
selectedmenu = linkmenuurl;
sm = 0;
$('.new').load(linkmenuurl + ' #lay_body_get', function () {
$('.new').show();
$('.lb2').css({
top: $('.lb1').height() * -1 - 60
});
$('.new').animate({
left: 0
}, 500);
$('.old').animate({
left: -1450
}, 500, function () {
$('.old').addClass('ob1');
$('.new').addClass('nw1');
$('.ob1').removeClass('old').addClass('new').css({
left: 1450
}).hide(100);
$('.nw1').removeClass('new').addClass('old').animate({
top: 0
}, 100, function () {
sm = 1;
});
$('.ob1').removeClass('ob1');
$('.nw1').removeClass('nw1');
});
});
}
})
// Trigger the event (useful on page load).
$(window).hashchange();
});
答案 0 :(得分:3)
使用选择器调用.load时,jQuery将从结果中删除脚本。
脚本执行
使用不带后缀选择器的URL调用.load()时 表达式,内容在脚本出现之前传递给.html() 除去。这将在丢弃之前执行脚本块。如果 使用附加到URL的选择器表达式调用.load(), 但是,在更新DOM之前,脚本会被删除, 因此不会被执行。两种情况的例子如下所示:
答案 1 :(得分:0)
使用记录为here的$.getScript(url)
。
如果这些是加载的HTML中的<script>
标记,则使用jQuery迭代它们,并使用上面的函数加载它们。
添加:您可以执行以下操作:
$.ajax(myPageURL, { complete: function (data) {
$(data.responseText).filter('script').each(function () {
$.getScript(this.src);
// OR
$('head').append($(this).html());
});
}});
这是jQuery.load()
问题的解决方法。它会再次加载整个页面,但会删除<html>
,<body>
,<head>
(等等)元素 - 从而允许您过滤页面标题中的脚本。请注意,这将导致页面第二次加载。
BTW ,在您的网页上添加<script>
代码而非使用$.getScript()
,至少可以在Chrome中调试脚本。