標題可能有點雜亂。基本上我想要做的是創建一個自定義函數,將修改對象屬性,然後返回該對象,然後調用一個函數。更改對象屬性,然後使用javascript調用自定義函數中的函數
關於我在做什麼的一點背景:盡我所能與Zendesk API在我的網頁上使用Web小部件。基本上這個網頁小工具被配置成啓動時的一個幫助中心,然後根據狀態顯示實時聊天或電子郵件的按鈕。這裏所討論的主要屬性叫做'suppress',它禁用了其中一個小部件頁面(聊天,電子郵件& helpCenter)。我的目標是使這個自定義函數「壓制」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)
似乎沒有工作。
我也試過如下:
- 不是通過把
zE.activate()
在zESettings
末或剛返回後返回window
或window.zESettings
- 下單功能將所有內容
window
或window.zESettings
如果您需要查看構件纔能有想法,可以看到它right here。點擊右下角的綠色按鈕,輸入任何內容,然後你會看到聯繫表單按鈕彈出。當實時聊天代理可用時,該按鈕將變爲聊天按鈕。
現在我知道這是我通常應該直接與Zendesk合作的東西,我試過了,但他們告訴我沒有什麼能做我想完成的事情,但我真的覺得這有些東西用我在JavaScript中做事的方式來做,而不是API的內置方式。
有沒有人有想法?我真的很感激。
P.S.這是我的第二篇文章,所以我很抱歉提出我在這個問題上可能犯的錯誤。
在你的函數chatPopOut()中,var window是一個空值,因爲它沒有被函數傳遞。它不應該是chatPopOut(窗口)? –