首页 > 解决方案 > 如何在谷歌应用脚​​本中全局访问 location.hash?

问题描述

我需要将 location.hash 存储为修改我的谷歌电子表格数据库的密钥。不幸的是,console.log() 总是显示未定义。有没有其他方法可以访问该值?

let global_id_str;
  document.addEventListener("DOMContentLoaded", function() { 
   
       google.script.url.getLocation(function(location) {
       global_id_str = location.hash;
       document.getElementById("Item").textContent =global_id_str;
     });
     search();
  });

我尝试使用单独的函数或仅使用 console.log() 进行调用。它仍然给出“未定义”。我也尝试使用 getElementById 将 textContent 存储在变量中,但这也是未定义的。

  function search(){
   console.log('here',global_id_str);
   var returnedResults = global_id_str === "" ? [] : data.filter(function(r){
        return searchWords.every(function(word){
        return [0].some(function(colIndex){
          return r[colIndex].toString().toLowerCase().indexOf(word) !== -1
          });
        });
        
       });
        
  }

这一定是GAS特有的问题吗?

标签: javascripturlgoogle-apps-script

解决方案


       ////////////////////////////  set hash & parameter global variable  //////////////////////////////////////////////
      

      var hash,option,options;
      
      google.script.url.getLocation(function(location) {
      var search=location.parameter;
      var search2=location.parameters;
      var ghash=location.hash;
      alert(ghash)
      alocation(ghash,search,search2);
      cform(search)
      });
     function alocation(ghash,search,search2){hash=ghash;option=search;options=search2;}
///////////////////// result ////////////////////
// http://www.example.com?n=1&name=muhammad(sm)&n=2#headingAnchor
hash="headingAnchor"
option.name="muhammad(sm)"
option.n="1"
options.n[0]="1"
optons.n[1]="2"

推荐阅读