Хороший вопрос! Editor API docs
объясняет это, но информация в основном разбросана, поэтому я подведу итог:
Для начала, есть опция CanEditMultipleObjects
, которую вы в настоящее время используете. не используется. Цитата из документов:
Если этот подход используется, пользователь может выбрать несколько активов в окне иерархии и изменить значения для всех них одновременно.
blockquote>Для базового примера этого выберите два
GameObjects
в вашей сцене, которые имеют одинаковый компонент Unity (например,Image
илиRigidbody
), и вы сможете изменять эти компоненты на в то же время, чтобы иметь одинаковые значения. Большинство встроенных компонентов поддерживают его.Это первое преимущество использования
serializedObject
; он поддерживает редактирование нескольких объектов, аEditor.target
- нет (для этого вам понадобитсяEditor.targets
). Так что теперь, если вам интересно, « почему бы мне просто не использоватьEditor.targets
для многообъектного редактирования? », рассмотрите эту цитату из документов:Вместо Для непосредственного изменения переменных сценария выгодно использовать системы SerializedObject и SerializedProperty для их редактирования, поскольку это автоматически обрабатывает многообъектное редактирование, отмену и переопределение Prefab . blockquote>
Суть этого сводится к тому, что если вы не хотите, чтобы функции отмены, переопределения и автоматического редактирования мультиобъектов выполнялись для вас автоматически, просто используйте
Editor.target
илиEditor.targets
. Если вы хотите, чтобы эти функции просто работали автоматически, используйтеSerializedObject
иSerializedProperty
.
Простое исправление:
<script language="JavaScript"><!--
var name = "emailusername";
var domain = "yahoo.com";
document.write('<a href=\"mailto:' + name + '@' + domain + '\">');
document.write(name + '@' + domain + '</a>');
// --></script>
Что в основном совпадает с предложением Рида, но с вашим существующим кодом.
Javascript помогает, но это мало поможет. Адрес электронной почты все еще виден в источнике html, использующем этот тип сценария.
«Лучшие» варианты используют JavaScript на стороне клиента для «построения» адреса электронной почты из частей, поэтому весь адрес электронной почты никогда не виден в Исходный код HTML в одном куске. Браузер собирает это для вас на клиенте.
Это даже не хороший способ. Спаммеры будут захватывать все это и сопоставлять адреса с регулярным выражением. Они не будут беспокоиться о поиске mailto :. Кроме того, любая схема, которую вы можете придумать с Javascript, уже рассмотрена и опровергнута спамером. Фактически, они, вероятно, просто смогут запустить javascript и получить адрес.
Вы можете
A) Фильтровать спам
Б) Используйте форму для отправки почты (которую спаммеры, вероятно, все еще будут использовать.)
Нет 110% надежного способа предотвратить это, кроме глупых уловок, которые просто мешают использованию электронной почты, например все адреса электронной почты в виде изображений и т. д.
По крайней мере, лично я согласился, что адреса будут собираться, по крайней мере, в некоторой степени. Я использую эту маленькую php-функцию для html-кодирования всех адресов электронной почты. Таким образом, они будут отлично использоваться всеми реальными браузерами, но дурачат самых тупых харвестеров. Как я уже сказал, это не 110%, но я доволен этим.
function turboencode($s){
$tempstr = "";
for($i = 0; $i < strlen($s); $i++){
$c = substr($s, $i, 1);
$tempstr .= "&#" . ord($c) . ";";
}
return $tempstr;
}
Вы на правильном пути, но наличие emailusername
в некотором роде побеждает цель (большинство ботов-пауков не пытаются различить HTML и код скрипта, а просто ищут все, что выглядит как электронная почта на странице).
Я слышал о свидетельстве того, что некоторые боты-пауки способны запускаться Javascript сейчас, и разрешит этот вид запутывания самостоятельно.
Лучший способ предотвратить сбор урожая - просто не иметь ссылку mailto: вообще
Если не считать, счетчиков не так много. Такие вещи, как CSS-контент и изображения, были опробованы и обойдены, и JavaScript - это нереальное решение (то есть, оно не работает.)
Один из возможных способов противостоять - это запутывание: добавьте глупость в свой адрес, как этот :
mailNO`at`SPAMyahoo`dot`com
И большинство автоматизированных харвестеров (изначально) будут испытывать некоторые трудности при его обнаружении. Кроме того, такие вещи, как комментарии, могут быть использованы, чтобы сбить с толку большинство комбайнов. (RFC822 описывает полный синтаксис адресов электронной почты, который включает комментарии как часть спецификации адреса.)
Другой счетчик - использовать форму с CAPTCHA некоторого вида.
Ни один из них не является полностью эффективным.