小白问题,怎么取其他页面的html代码?

「已注销」 2016-11-17 10:13:22

var get = function () {
$.get("htmlpage.html", function (data, status) {
return data;
});

}

我意思是想取出htmlpage.html的html代码,但我调用时测试

var test =get();

alert(test);


结果不是我想当然的string类型,是undefined

请问,要实现我想要的效果应该怎么写?谢谢。
...全文
115 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2016-11-18
  • 打赏
  • 举报
回复

如果一定要用return语句返回ajax加载的数据,必须用同步模式async: false
var get = function () {
	var rv;
	$.ajax({
		type: "GET",
		url: "htmlpage.html",
		async: false,
		success: function (data, status) {
           rv = data;
        }
    });
	return rv;
}

但要注意同步模式会在加载时让浏览器处于假死状态。
如果一定要用return语句返回ajax加载的数据,必须用同步模式async: false
var get = function () {
	var rv;
	$.ajax({
		type: "GET",
		url: "htmlpage.html",
		async: false,
		success: function (data, status) {
           rv = data;
        }
    });
	return rv;
}

但要注意同步模式会在加载时让浏览器处于假死状态。
天际的海浪 2016-11-17
  • 打赏
  • 举报
回复

你要学会用回调函数。
必须改变get()函数的使用方式
当然这可能要修改你的整个程序系统

如原来
var test =get();
后面用到“test变量”的代码
。。。。。。。。。。。
。。。。。。。。。。。

必须改成

get(function(data){
	var test = data;
	后面用到“test变量”的代码
	。。。。。。。。。。。
	。。。。。。。。。。。
});
「已注销」 2016-11-17
  • 打赏
  • 举报
回复
谢谢回复,但我想要的就是return其他网页的html代码,作为变量给其他属性用。您这个写法实际还是要在get中处理函数啊。
引用 1 楼 jslang 的回复:

要用return语句返回ajax加载的数据,必须用同步模式async: false
但同步模式会让浏览器线程被锁死。
不想线程被锁死,就只有用异步。
但是异步模式是不能用return语句返回的,必须要改用回调函数。

如
var get = function (cf) {
    $.get("htmlpage.html", function (data, status) {
        cf(data);
    });
}

get(function(test){
    alert(test);
});
要用return语句返回ajax加载的数据,必须用同步模式async: false
但同步模式会让浏览器线程被锁死。
不想线程被锁死,就只有用异步。
但是异步模式是不能用return语句返回的,必须要改用回调函数。

如
var get = function (cf) {
    $.get("htmlpage.html", function (data, status) {
        cf(data);
    });
}

get(function(test){
    alert(test);
});
天际的海浪 2016-11-17
  • 打赏
  • 举报
回复

要用return语句返回ajax加载的数据,必须用同步模式async: false
但同步模式会让浏览器线程被锁死。
不想线程被锁死,就只有用异步。
但是异步模式是不能用return语句返回的,必须要改用回调函数。

如
var get = function (cf) {
    $.get("htmlpage.html", function (data, status) {
        cf(data);
    });
}

get(function(test){
    alert(test);
});
要用return语句返回ajax加载的数据,必须用同步模式async: false
但同步模式会让浏览器线程被锁死。
不想线程被锁死,就只有用异步。
但是异步模式是不能用return语句返回的,必须要改用回调函数。

如
var get = function (cf) {
    $.get("htmlpage.html", function (data, status) {
        cf(data);
    });
}

get(function(test){
    alert(test);
});

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧