ここに見られるように、LinkedIn からアカウントに関する情報を含む Dynamics CRM (2011) のポップアップを取得しようとしていますhttp://www.alticoadvisors.com/Portals/0/Adding%20LinkedIn%20to%20Dynamics%20CRM%20 -%20Aug2010%20CRM%20Tip.pdf
フォームの onLoad 関数を使用してボタンに変更するフォームにフィールドを添付しました。これはアラートなどの単純な JavaScript でFunctionName
機能しましたが、Linked In 統合でより複雑なスクリプトを追加しようとすると、Internet Explorer で空白のウィンドウが開き、ボタンが変化しません。
残念ながら、私はjavacriptにまったく慣れていないため、どこに間違いがあるのか わかりません。もう 1 つの懸念は、Linked In 部分が CRM 4.0 用に作成されたものであり、2011 を使用していることですが、間違いを見つけて修正するためのエンティティの違いがわかりません。
以下は、Web リソースの私の JavaScript です。どんな考えや指針も大歓迎です。
クリス
function open()
{
ConvertToButton('new_buttonfield', 'LinkedIn','100px',FunctionName,'Button Label');
}
function ConvertToButton(fieldname, buttontext, buttonwidth,clickevent, title)
{
//check if object exists; else return
if (document.getElementById(fieldname) == null)
{
alert("no field by that name");
return;
}
functiontocall=clickevent;
crmForm.all[fieldname].DataValue = buttontext;
crmForm.all[fieldname].readOnly = true;
crmForm.all[fieldname].style.borderRight="#3366cc 1px solid";
crmForm.all[fieldname].style.paddingRight="5px";
crmForm.all[fieldname].style.borderTop="#3366cc 1px solid";
crmForm.all[fieldname].style.paddingLeft="5px";
crmForm.all[fieldname].style.fontSize="11px";
crmForm.all[fieldname].style.backgroundImage="url(/_imgs/btn_rest.gif)";
crmForm.all[fieldname].style.borderLeft="#3366cc 1px solid";
crmForm.all[fieldname].style.width=buttonwidth;
crmForm.all[fieldname].style.cursor="hand";
crmForm.all[fieldname].style.lineHeight="18px";
crmForm.all[fieldname].style.borderBottom="#3366cc 1px solid";
crmForm.all[fieldname].style.backgroundRepeat="repeat-x";
crmForm.all[fieldname].style.fontFamily="Tahoma";
crmForm.all[fieldname].style.height="20px";
crmForm.all[fieldname].style.backgroundColor="#cee7ff";
crmForm.all[fieldname].style.textAlign="center";
crmForm.all[fieldname].style.overflow="hidden";
crmForm.all[fieldname].attachEvent("onmousedown",push_button);
crmForm.all[fieldname].attachEvent("onmouseup",release_button);
crmForm.all[fieldname].attachEvent("onclick",functiontocall);
crmForm.all[fieldname].style.lineHeight="14px";
crmForm.all[fieldname+'_c'].style.visibility = 'hidden';
crmForm.all[fieldname].title=title;
window.focus();
}
function push_button(){
window.event.srcElement.style.borderWidth="2px";
window.event.srcElement.style.borderStyle="groove ridge ridge groove";
window.event.srcElement.style.borderColor="#3366cc #4080f0 #4080f0 #3366cc";
}
function release_button(){
window.event.srcElement.style.border="1px solid #3366cc";
}
function LinkedInLoader(crmFormField) {
var ll = this;
ll.scriptSource = 'http://www.linkedin.com/companyInsider?script&useBorder=yes'
ll.field = crmFormField;
ll.container = crmFormField.parentNode;
ll.nameToSearch = crmFormField.DataValue;
ll.spanId = ll.field.id + '_linkedin';
if (ll.container != null) {
var span = document.createElement('span');
span.id = ll.field.id + '_linkedin';
var td1 = document.createElement('td');
td1.innerHTML = ll.container.innerHTML;
var td2 = document.createElement('td');
td2.appendChild(span);
td2.style.width = '15px';
var tr = document.createElement('tr');
tr.appendChild(td1);
tr.appendChild(td2);
var table = document.createElement('table');
table.width = '100%';
table.style.tableLayout = 'fixed';
table.cellSpacing = 0;
table.cellPading = 0;
table.appendChild(tr);
ll.container.innerHTML = table.outerHTML;
}
ll.ApplyCorrections = function () {
var div = document.getElementById('company-insider-info-window');
if (div != null) div.style.height = '275px';
else window.setTimeout(ll.ApplyCorrections, 500);
}
ll.Enable = function () {
new LinkedIn.CompanyInsiderPopup(ll.spanId, ll.nameToSearch);
new LinkedIn.CompanyInsiderStylesheet();
var span = document.getElementById(ll.spanId);
if (span != null) span.attachEvent('onclick', ll.ApplyCorrections);
}
ll.OnScriptReadyState = function () {
if ((event.srcElement.readyState == 'complete') ||
(event.srcElement.readyState == 'loaded')) {
ll.Enable();
}
}
ll.Load = function () {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = ll.scriptSource;
script.onreadystatechange = ll.OnScriptReadyState;
document.getElementsByTagName('head')[0].appendChild(script);
}
}
// now the definition of the function to call on button click
function FunctionName()
{
//if (account.FormType != 1) {
// Set the field that contains the company name
var linkedInLoader = new LinkedInLoader(crmForm.all.name);
linkedInLoader.Load();
//}
}