2016-09-24 3 views
0

Мне нужно передать эту переменную из одной функции в другую, но есть некоторые проблемы с этим.Как передать локальную переменную из одной функции в другую функцию в javascript

var url; 
var ua = navigator.userAgent.toLowerCase(); 
$("#ToBuyStep2").click(function(){ 

    if(ua.match(/MicroMessenger/i)=="micromessenger") { 
     url=window.location.href; 
     window.location.href = "http://www.juliyeah.com/wap/tmpl/order/weixin.html"; 
    } 
}) 

function goBackUrl(){ 

    if(ua.match(/MicroMessenger/i)!="micromessenger") { 

     window.location.href = "http://www.juliyeah.com"; 
    } 
} 

Так что нужно помнить этот адрес, когда ToBuyStep2 щелкают и передать этот адрес в goBackUrl() функции. Эти две функции вызываются в разных файлах, поэтому я не могу их объединить. Кто-нибудь знает, как это сделать?

ответ

0

Вы можете использовать sessionStorage для установки «последнего URL-адреса», а затем запросить его в вашей функции boGackUrl: sessionStorage.setItem('prevUrl', window.location.href). Имейте в виду, что после изменения местоположения ваши данные будут потеряны. Но передача данных в хранилище сеансов сделает их доступными до тех пор, пока пользователь не закроет вкладку/браузер.

+0

Причина, по которой я должен это делать, заключается в том, что, когда пользователи просматривают мой сайт в браузере wechat, wechat блокирует paypal, чтобы пользователи не могли видеть плагин paypal. Поэтому, когда они переходят на сафари, сеанс не будет таким же, как я думаю. – Yao

+0

Вы должны шутить ... вы хотите передать информацию из одного браузера другому? Ну, если это так, вам, возможно, нужно немного узнать о том, как работает веб ... – n1kkou

1
const functionGenerator = function() { 
    let url = ''; 

    let result = {}; 

    result.ToBuyStep2 = function() { 
     // you can access URL here 
    }; 

    result.OnClick = function() { 
     // you can access URL here 
    }; 

    return result; 
}; 

let temp = functionGenerator(); 

document.getElementById('whatever').onclick = temp.OnClick; 
document.getElementById('stuff').someEvent = temp.ToBuyStep2; 
+0

Да, закрытие в точности подходит для этой работы. – Redu

+0

@ Реду да, затворы являются лучшими – RotatingPieces

Смежные вопросы