2017-04-10 51 views
0

我有一個Excel JavaScript插件,在功能區上創建多個按鈕,並且每個按鈕調用一個任務窗格。這些按鈕需要執行的JavaScript代碼是相同的,除了調用堆棧中的單行代碼,它決定了我們在填充任務窗格時將下一個請求發送到的服務器地址。我想知道最簡單的方法是告訴用戶推送到哪個按鈕到達我們的位置;如果可能的話,我寧願避免向第二個按鈕發送不同的javascript到客戶端。如何確定調用按鈕的ID或打開任務窗格從辦公室-JS

在Addin的清單中,我爲按鈕和任務窗格設置了唯一的ID - 是否有任何方式從javascript訪問這些內容?我找到了Office.context.ui,但它似乎沒有包含有關當前UI上下文的任何信息。

+0

只是爲了澄清;你有兩個按鈕(例如B1和B2)。 B1和B2都在Taskpane中打開相同的URI? –

+0

我希望他們都打開相同的,因爲我需要下推的代碼很大,否則將只有一行不同。如果沒有其他方法可以做到這一點,而不是讓他們指向不同的網址,我也可以這樣做。 –

回答

0

按鈕的ID在點擊事件期間沒有出現。然而,這是一個有趣的建議。我建議你添加到Office Developers UserVoice

當我遇到類似的用例時,我們通常通過創建兩個不同的URI來處理它。每個按鈕只是指向它自己的URI。但是,當該URI啓動時,它會立即重定向到主應用程序頁面。爲了保持執行路徑,我們包含一個查詢參數,告訴主應用程序頁面來自哪裏。您可以使用相同的模型來傳遞功能區中的哪個按鈕。

如果你走這條路線,確保你的初始URI包含它自己的Office.initialize實現。您可以使用此方法執行到主頁面的導航。沒有它,你可能會遇到問題,因爲Office假定每個加載項頁面都實現了Office.initialize。

相關問題