2014-09-05 99 views
0

即時通訊嘗試開發窗口的側邊欄小工具。發送數據到彈出窗口,側邊欄小工具

一切工作正常,除了從沒有太多關於小工具的知識的問題。 我嘗試搜索網絡,並有很少documentatins,他們也不太清楚。

問題現在我面對我從使用Ajax的服務器獲取數據。現在我想在彈出窗口中顯示返回的數據。 但是BIG的問題是如何發送數據到彈出窗口,搜索網絡,並找不到有用的東西。是的,這裏有很多例子,但是這些例子中的代碼太多,我無法弄清楚發生了什麼。這裏下面

是我gadget.html,主HTML文件 從文件中的一些代碼:

 function init() 
     { 
      System.Gadget.settingsUI = "settings.html"; 
      System.Gadget.onSettingsClosed = settingsClosed; 
      // Specify the Flyout root. 
      System.Gadget.Flyout.file = "search.html"; 
      System.Gadget.onDock = DockedChanged; //no longer support in win7 
      System.Gadget.onUndock = UnDockedChanged; //msdn.microsoft.com/en-us/library/dd370867(VS.85).aspx 
      this.document.body.style.height = 100; 
      var evenColorTR = document.getElementById('evenColorTR'); 
      var ColorRows = document.getElementById('data-Tables').getElementsByTagName('tr'); 
      for(var x = 0; x < ColorRows.length; x++) { 
       ColorRows[x].className = (x % 2 == 0) ? 'even' : 'odd'; 
      } 
     } 

     function openSearch() 
     { 
      var searchString = document.getElementById("searchBox").value; 
      var location = "http://localhost/projects/pdoConnection.php"; 
//   var location = "http://www.w3schools.com/ajax/ajax_info.txt"; 

/*   var http = new XMLHttpRequest(); 
      var params = "lorem=ipsum&name=binny";*/ 
      System.Gadget.Flyout.show = true; 
      var data={ 
       searchFilter:searchString 
      }; 
/*   $('#testingbaba').text('im inside function'); 
      console.log('I am inside Function');*/ 
/* 
      try{ 
      $.ajax({ 
       type:"POST", 
       url:location, 
       data:data, 
       dataType:"json", 
       cache:false, 
       success:function(e){ 
        console.log('im the success'+e); 
        $('#testingbaba').text('im the success'+e); 
       }, 
       error:function(XMLHttpRequest, textStatus, errorThrown){ 
        console.log('im the error' + e); 
        $('#testingbaba').text('im the error'+errorThrown); 
       } 
       }); 
      } 
      catch(e) { 
       $('#testingbaba').text('im the catch'+e); 
      } 
*/ 
      $.post(location, data).done(function(data) { 
       $('#testingbaba').text(data); 

      }); 

/*   var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      xmlhttp.onreadystatechange=function(e) { 
       if (xmlhttp.readyState==4) { 
        $('#testingbaba').text('Hello World'); 
       } 

       xmlhttp.open("GET",location,true); 
       xmlhttp.send(); 
      }*/ 

     } 

我希望在彈出的是IE打開 時System.Gadget.Flyout.show = true;設置爲true數據應該被髮送到彈出。

回答

0

問題解決了,找到了解決辦法。

要將數據從主html文件發送到彈出窗口,我確實使用了下面的過程。

增加這下面的代碼

var somedata = 'some data or string or anything'; 
System.Gadget.Settings.write("data", someData); 

並沒有閱讀使用本下面的代碼在彈出的數據。

var dataFromMainFile = System.Gadget.Settings.read('data'); 

工作就像一個魅力。

+1

如果somedata是主小工具文件中的全局變量,則可以使用System.Gadget.document.parentWindow.somedata更輕鬆地(並且無磁盤I/O)在彈出腳本中訪問它 – mystifeid 2014-10-18 21:54:48