我已经编写了一个Tamper Monkey脚本(Chrome)来从我们的Zendesk票证中提取电子邮件地址,然后在另一个标签页中附加一个链接以在我们的管理工具中查找该用户。它可以工作,但只有在您到达新票证时刷新页面才会一致(否则,您最终会得到您查找的最后一张票的价值)。
基于检查元素,看起来Zendesk使用Ember。这意味着Zendesk在页面内部有自己的选项卡,因此当您在网站中单击时,您不必总是重新加载页面。
我无法弄清楚如何让它始终保持最新状态(具有当前票证的电子邮件地址的价值)而无需刷新,而且我也无法弄清楚如何获取它没有timeOut的工作...当我基于文档准备或onload窗口做它时,它不能正常工作。我怀疑我对Embed负载状态的不良理解也归咎于此。
PS。我使用noConflict因为我认为Ember也使用$符号,但也不确定是否有必要。任何帮助,将不胜感激!谢谢!
// ==UserScript==
// @name User lookup
// @namespace Metronome
// @version 0.2
// @description Checks ticket email address and looks up in admin tools
// @author Tphlat
// @include https://*.zendesk.com/agent/tickets/*
// @grant none
// ==/UserScript==
$.noConflict();
jQuery( document ).ready(function() {
console.log( "DOCUMENT LOADED" );
});
jQuery(window).on('load', function () {
console.log( "WINDOW LOADED" );
// alert('READY WINDOW');
});
window.onload = function() {
function myFunc(){
var email = document.querySelector("a.email").innerHTML;
email = email.replace(/\@/g,'%40');
console.log(email);
var linkOut = " <strong><a href='https://example.com/admin/users?username=" + email + "' target='_blank' style='background-color:yellow;'>\/ LOOKUP \/</a></strong>";
jQuery('div.source.delimited_items').append(linkOut);
}
setTimeout(myFunc, 2000);
};
&#13;