0

ここに見られるように、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();
    //}
 }
4

1 に答える 1

1

これをよく見ると、いくつかのことがあります...

まず、動的に挿入するLinkedIn URLはHTTPであり、HTTPSではありません。また、HTTPSに切り替えるとURLが構文エラーを生成するようです。

あなたの最善の策は、LinkedInから提供されるAPIを使用することです:https ://developer.linkedin.com/documents/getting-started-javascript-api

最後に、参照している会社概要は非推奨になりました。これがあなたがやろうとしていることの最新バージョンです:http://developer.linkedinlabs.com/jsapi-console/#examples/company_profile/hover.html& {"framework":"platform.linkedin.com/in。 js "、" frameworkurl ":" "、" apikey ":" "、" apioptions ":" "、" sessionbuttons ":true、" async ":false}

于 2012-04-10T19:25:23.573 に答える