未传递功能参数。如何正确地将参数传递给另一个JavaScript文件的功能?

时间:2020-06-13 18:37:11

标签: javascript html

我想从另一个JavaScript文件models调用文件Models的函数const Product = use('App/Models/Product') ,以在浏览器中打开新页面,并使用通过{{ 1}}。因此Traceback (most recent call last): File "/home/m/8/.buildozer/android/app/main.py", line 10, in <module> File "/home/m/8/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivymd/uix/filemanager.py", line 119, in <module> ModuleNotFoundError: No module named 'PIL' Python for android ended. 应该采用requirments = python3, kivy, kivymd, yandex-geocoder, requests, mapview, geopy android.permissions = INTERNET, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE, READ_LOGS 的值,并应显示在file2Function(getValue)上。但是它显示(page2.js)的“未定义”。请帮助我找出我在哪里做错。谢谢。

outPut in page1.html

output after page load page2.html

(page1.js)
myFunction1(e) into file2Function as file2Function(itemFromItems)

1 个答案:

答案 0 :(得分:2)

问题在于globalVar是一个全局变量,但是您在file2Function()中为其分配的值只能在其范围内访问,这就是为什么要获取undefined的原因,因为loadDynamicData()无法访问globalVar的新值。

您可以从loadDynamicData()调用file2Function()并传递getValue作为参数,但是由于您需要在执行page2之前打开loadDynamicData(),所以不会工作。

我建议您将getValueURL一起作为查询参数,并从loadDynamicData()内部获取它,它将很好地工作。

SOLUTION:

function file2Function(getValue)
{
    window.open("page2.html?value="+getValue);
  // window.open("https://www.google.com/");
}

function loadDynamicData()
{
    var url_string = window.location.href
    var url = new URL(url_string);
    var globalVar = url.searchParams.get("value");


    var para=document.getElementById("paraId");
    console.log(para);
    para.innerText=globalVar+" : value from myFunction1 (Click Event)";


    var secPage2 = document.getElementById("page2Section");
        var headingJS2 = document.createElement("h4");
        headingJS2.innerText=" This is dynamic heading";
        secPage2.appendChild(headingJS2);
    console.log(para);

}

如果要隐藏值,可以使用sessionStorage代替查询参数:

function file2Function(getValue)
{
  sessionStorage.setItem('value', getValue)
  window.open("page2.html");
  // window.open("https://www.google.com/");
}

function loadDynamicData()
{
    var globalVar = sessionStorage.getItem('value')

    var para=document.getElementById("paraId");
    console.log(para);
    para.innerText=globalVar+" : value from myFunction1 (Click Event)";


    var secPage2 = document.getElementById("page2Section");
        var headingJS2 = document.createElement("h4");
        headingJS2.innerText=" This is dynamic heading";
        secPage2.appendChild(headingJS2);
    console.log(para);

}