日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js如何把ajax获取的值返回到上层函数里?

發布時間:2023/12/2 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js如何把ajax获取的值返回到上层函数里? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我現在有個系統在用戶點擊瀏覽時,系統會以ajax的方式從后臺獲取查看的鏈接,并以window.open的方式打開,但因為現在多數的瀏覽器都會攔截window.open打開的地址,而window.location.href的方式又無法在瀏覽器新窗口打開,所以我現在只能通過在前臺頁面的onclick函數中實現window.open(使用該方式,瀏覽器不會攔截),我原來的代碼是如下這樣的:

function GetViewUrl(bookID, $, layer, siteURL) {$.ajax({type: "post",data: { 'BookID': bookID },datatype: "text/json",scriptCharset: 'utf-8',url: siteURL 'Parts/GetViewUrl',success: function (year) {if ($.trim(year) != '') {var defalutFileName = bookID '.html';url = siteURL 'Parts/ViewItem/' year '/' bookID '/' defalutFileName;window.open(url);}},error: function () {}});} 我現在想修改該段代碼,讓這個函數返回url,可以給外部的函數調用,這段代碼要怎么改?其實很簡單:只要修改三個地方:

1.在該段代碼新增一個全局返回的變量

2.把該段ajax調用的方式改為非異步,也就是新增一個?async: false,

3.在最后返回定義的全局變量

代碼如下:

function GetViewUrl(bookID, $, layer, siteURL) {
? ? var url = '';//定義要返回給外部函數的值
? ? $.ajax({
? ? ? ? async: false,//這一步非常重要
? ? ? ? type: "post",
? ? ? ? data: { 'BookID': bookID },
? ? ? ? datatype: "text/json",
? ? ? ? scriptCharset: 'utf-8',
? ? ? ? url: siteURL 'Parts/GetViewUrl',
? ? ? ? success: function (year) {
? ? ? ? ? ? if ($.trim(year) != '') {
? ? ? ? ? ? ? ? var defalutFileName = bookID '.html';
? ? ? ? ? ? ? ? url = siteURL 'Parts/ViewItem/' year '/' bookID '/' defalutFileName;//從服務器獲取值
? ? ? ? ? ? }
? ? ? ? ? ?
? ? ? ? },
? ? ? ? error: function () {
? ? ? ? ??
? ? ? ? }
? ? });
? ? return url;//返回值
}

總結

以上是生活随笔為你收集整理的js如何把ajax获取的值返回到上层函数里?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。