0

在我的Web應用程序中實現「連接到QuickBooks」按鈕時,我發現它會彈出一個新窗口而不是被重定向,這在長時間內是非常不希望的這個應用程序。有沒有辦法讓按鈕彈出一個新窗口,只是在同一個標​​籤中重定向?或者這會違反因紐特人的Do's and Don'ts(1.不要修改此按鈕的外觀或行爲2.不要修改實現此按鈕的代碼)從彈出一個新窗口中保留「連接到QuickBooks」按鈕

我假設命令彈出一個新的窗口在Intuit的JavaScript anywhere()函數中,但我不知道是否有辦法阻止它彈出一個新窗口,並使其使用相同的選項卡,而不更改其代碼。

或者,如果真的沒有什麼可以自動關閉彈出的窗口並恢復以前使用的選項卡的控制?我試圖尋找這個解決方案,但沒有找到任何真正的東西,或者至少沒有任何東西對我有用。

感謝您的任何幫助。

編輯: 我想出瞭如何關閉窗口......現在只需要處理刷新頁面就可以回到某個東西。我還沒有完全想通了它是如何工作的,但是我最終使用:

<script type="text/javascript"> 
    try { 
     var parentlocation = window.parent.opener.location.hostname; 
     var currentlocation = window.location.hostname; 
     if (parentlocation != currentlocation) { 
      window.location = "/default.aspx"; 
     } 
     else { 
      window.opener.location.href = window.opener.location.href; 
      window.close(); 
     } 
    } 
    catch (e) { 
     window.location = "/default.aspx"; 
    } 
</script> 

如果有人不介意解釋代碼,這將是真棒,但沒有人來。我現在不能這樣做,所以稍後我會自己做。

回答

3

我發現,它會彈出一個新窗口,而不是僅僅被重定向的,

沒錯,這就是忒想要做的事。

有什麼辦法讓按鈕彈出一個新窗口,只是 重定向在同一個標​​籤?

沒有。

試圖做到這一點是讓Intuit禁止您的應用程序/從AppCenter中刪除它的好方法。

或者,如果真的是沒有什麼有可能關閉 自動彈出窗口,並恢復先前 使用標籤的控制?

當然。事實上,如果你想在AppCenter上發佈,你將不得不這樣做。

簡單的JavaScript - window.close();

請記住,這個窗口只需要打開一次,然後再也沒有。這不會對你的用戶造成巨大的不便,因爲他們只需要在使用你的應用程序的整個歷史中一次完成這一操作。

+0

好吧,我不知道它是否會違揹他們的意願,這就是我問的原因。但謝謝你澄清這一點。好吧...那麼我給Intuit作爲回調URL的頁面是那個包含'window.close()'的頁面? (JavaScript新手)。我知道只需要發生一次或每次有人授權,但它會讓我感到厭煩。但是,感謝Keith,你一直很有幫助。 –

+0

另外,一旦你關閉了窗口,你如何重定向下面的頁面(彈出窗口被替換的頁面)以轉到正確的頁面? –

+0

刷新父窗口:window.opener.location.reload(false);應該有一個URL,用戶在連接後會彈出一個URL,這就是所有Javascript需要去的地方。 –

相關問題