簡體   English   中英

更改對象屬性,然后使用javascript在自定義函數中調用函數

[英]Changing an object properties then calling a function inside a custom function with javascript

標題可能有點混亂。 基本上,我想做的是創建一個自定義函數,該函數將修改對象的屬性,然后返回該對象,然后調用一個函數。

我正在做的事情的一些背景知識:盡最大努力使用Zendesk API在我的網頁上使用Web小部件。 基本上,此Web小部件被配置為啟動時的幫助中心,然后根據狀態顯示用於實時聊天或電子郵件的按鈕。 這里要討論的主要屬性稱為“禁止”,它禁用小部件頁面之一(聊天,電子郵件和幫助中心)。 我的目標是使自定義函數“抑制” 3個小部件頁面中的2個,使其僅顯示一個。 然后,名為zE.activate()的API函數將打開小部件。

我知道這是很多文本,讓我向您展示到目前為止的代碼:

<script>
function setChatPopOutProps(window) {
    window.zESettings = {
        webWidget: {
            contactForm: {
                suppress: true
            },
            helpCenter: {
                suppress: true
            }
        }
    };
    return window.zESettings;
};
function chatPopOut() {
    setChatPopOutProps(window);
    zE.activate();
};
</script>

現在,當我點擊具有按鈕chatPopOut()分配時, zE.activate()的作品,因為它打開了窗口小部件,但基本上setChatPopOutProps(window)似乎並沒有工作。

我還嘗試了以下方法:

  • 不返回windowwindow.zESettings
  • 通過把下一個函數把一切zE.activate()在結束zESettings或只是回歸后的windowwindow.zESettings

如果您需要查看實際使用的小部件以了解想法,可以在此處查看 單擊右下角的綠色按鈕,輸入任何內容,您將看到彈出的聯系表單按鈕。 當實時聊天代理可用時,此按鈕變為聊天按鈕。

現在我知道這是我通常應該直接與Zendesk一起解決的問題,我嘗試過,但是他們告訴我,沒有什么事情可以做我想完成的事情,但是我真的覺得這與我用JavaScript處理事情的方式,而不是API的構建方式。

有人有主意嗎? 我真的很感激。

PS:這是我的第二篇文章,因此對於在這個問題上可能犯的錯誤我深表歉意。

可悲的是,事實證明,您試圖完成的工作是不可能的。 由於首次初始化微件時會應用zE.settings,因此無法動態更改微件設置,而無需執行諸如刷新頁面並重新初始化微件之類的操作。 從我的代碼中可以看到,我不希望您每次都刷新頁面並重新初始化小部件只是為了應用上面列出的那些設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM