В Facebook есть набор метаданных с открытым графиком , на которые он может решить, какое изображение показывать.
Ключом для изображения Facebook являются:
, и он должен присутствовать внутри тега в верхней части страницы.
Если эти теги отсутствуют, он будет искать свой более старый метод указания изображения: . Если ни один из них не присутствует, Facebook будет просматривать содержимое вашей страницы и выбирать изображения со своей страницы, соответствующие критериям его общего изображения: Изображение должно быть не менее 200 пикселей на 200 пикселей, иметь максимальный формат изображения 3: 1 и в формате PNG, JPEG или GIF.
Могу ли я указать несколько изображений, чтобы пользователь мог выбрать изображение?
Да, вам просто нужно добавить несколько метатег изображений в том порядке, в котором вы хотите, чтобы они отображались. пользователь будет представлен диалоговым окном селектора изображений: [/g5]
Я указал соответствующие метатеги изображений. Почему Facebook не принимает изменения?
После того, как URL был открыт, искатель Facebook, у которого есть пользовательский агент facebookexternalhit/1.1 (+https://www.facebook.com/externalhit_uatext.php)
, будет обращаться к вашей странице и кэшировать метаинформацию. Чтобы заставить Facebook-серверы очистить кеш, используйте Facebook Url Debugger / Linter Tool , который они запустили в июне 2010 года , чтобы обновить кеш и устранить любые проблемы с метатегами на вашей странице ,
Кроме того, изображения на странице должны быть общедоступны для искателя Facebook. Вы должны указать абсолютный url как http://example.com/yourimage.jpg вместо просто /yourimage.jpg.
Могу ли я обновить эти метатеги клиентским кодом, например Javascript или jQuery? Нет. Подобно поисковым роботам, скребок Facebook не выполняет сценарии, поэтому любые метатеги присутствуют при загрузке страницы - это метатеги, которые используются для выбора изображения.
Добавление этих тегов приводит к моей странице чтобы больше не проверять. Как это исправить?
Вы можете добавить необходимые теги имен Facebook в свой тег, и ваша страница должна пройти проверку:
Вы могли использовать проверенный селектор для захвата только выбранных (инвертирующий потребность знать количество или выполнить итерации по ним всем сами):
$("input[name='user_group[]']:checked")
С теми проверенными объектами, можно или создать набор тех значений или сделать что-то к набору:
var values = new Array();
$.each($("input[name='user_group[]']:checked"), function() {
values.push($(this).val());
// or you can do something to the actual checked checkboxes by working directly with 'this'
// something like $(this).hide() (only something useful, probably) :P
});
Я просто сократил ответ, я выбрал немного:
var selectedGroups = new Array();
$("input[@name='user_group[]']:checked").each(function() {
selectedGroups.push($(this).val());
});
и это работает как очарование, Спасибо!
Я не на 100% совершенно уверен, как Вы хотите "захватить" значения. Но если Вы хотите выполнить итерации по флажкам, можно использовать .each как так:
("input[@name='user_group[]']").each( function() {
alert($(this).val());
});
, Конечно, лучший селектор доступен:
$(':checkbox')
У Вас может быть переменная JavaScript, которая хранит количество флажков, которые испускаются, т.е. в <head>
из страницы:
<script type="text/javascript">
var num_cboxes=<?php echo $number_of_checkboxes;?>;
</script>
Поэтому, если бы существует 10 флажков, запускающихся от user_group-1
до user_group-10
, в коде JavaScript, Вы получили бы их значение таким образом:
var values=new Array();
for (x=1; x<=num_cboxes; x++)
{
values[x]=$("#user_group-" + x).val();
}
мхата дзеню месе. его на самом деле
var selectedGroups = new Array();
$(".user_group[checked]").each(function() {
selectedGroups.push($(this).val());
});
Я не уверен в использовании символа «@» в селекторе. По крайней мере, в последней версии jQuery мне пришлось удалить @, чтобы заставить это работать с двумя разными массивами флажков, в противном случае для каждого массива были выбраны все отмеченные элементы:
var items = [];
$("input[name='items[]']:checked").each(function(){items.push($(this).val());});
var about = [];
$("input[name='about[]']:checked").each(function(){about.push($(this).val());});
Теперь и элементы, и о работе.