LinkedIn API: динамический компонент пользовательского интерфейса - PullRequest
2 голосов
/ 10 апреля 2011

Я пытаюсь динамически заполнить поле data-id публичным URL-адресом, извлеченным из результатов поиска linkedin.Предположим, что я могу вернуть URL публичного профиля.Если я поставлю тот же скрипт прямо на страницу (не через javascript), он будет работать.

resultsHtml += '<script type="IN/MemberProfile" data-id="'+currResult.publicProfileUrl+'" data-format="inline"/>'; 
$("#search-results").html(resultsHtml);

Для справки

http://developer.linkedin.com/docs/DOC-1278

Ответы [ 3 ]

1 голос
/ 20 апреля 2011

Я предполагаю, что вы пытаетесь динамически добавить тег сценария LinkedIn (с динамическим идентификатором данных) на страницу готовности / выгрузки или после. Библиотека LinkedIn будет сканировать страницу на наличие тегов сценария для анализа на готовой странице, поэтому она может не увидеть ваш динамический тег во времени.

В соответствии с http://developer.linkedin.com/docs/DOC-1292#Parsing_Tags вы можете вызвать IN.parse(domNode), чтобы отобразить любые динамически добавленные теги LinkedIn. Итак, после вашего примера кода вы можете сделать:

IN.parse($("#search-results")[0]);
1 голос
/ 14 апреля 2011

если вы используете jQuery, который, как я полагаю, вам нужен, вам необходимо запустить первый файл js: http://platform.linkedin.com/in.js

, поэтому убедитесь, что у вас есть:

<script src="http://platform.linkedin.com/in.js" type="text/javascript"></script>

глава документа.

и затем в теле, когда вы называете это:

$(function(){

   ...
   //here is the hack:
   resultsHtml += '<sc'+'ript type="IN/MemberProfile" data-id="'+currResult.publicProfileUrl+'" data-format="inline"></sc'+'ript>';
   //remember to close script tags 

   $("#search-results").html(resultsHtml);

   ...

})

или вы можете попробовать это:

$(function(){

   ...

   var $script = $('<script>',{
                    'data-format': 'inline',
                    type: 'IN/MemberProfile',
                    'data-id': "'+currResult.publicProfileUrl+'"
                  })

   $("#search-results").html(resultsHtml);
   $("#search-results").append($script);
   ...

})
0 голосов
/ 21 апреля 2011
resultsHtml += '<script type="IN/MemberProfile" data-id="'+currResult.publicProfileUrl+'" data-format="inline"/>';

одна вещь, которую вам не хватает в примере, это закрытие </script>

resultsHtml += '<script type="IN/MemberProfile" data-id="'+currResult.publicProfileUrl+'" data-format="inline"></script>';

так что это может выглядеть как их пример:

<script src="http://platform.linkedin.com/in.js" type="text/javascript"></script>
<script type="IN/MemberProfile" data-id="/in/jeffweiner08" data-format="inline"></script>
...