Если вы поддерживаете угол наклона стола, найдите сайт с таблицами, а затем найдите себе программу чтения с экрана - отключите программу чтения с экрана и выключите монитор.
Тогда попробуйте это с хорошим семантически правильным сайтом макета div.
Вы увидите разницу.
Таблицы не являются злом, если данные в них являются табличными, чтобы не разметить страницу.
Меня это тоже заинтересовало, так что два дня обратного проектирования Safaris 'Mail Contents of This Page' функции, и я заставил его работать.
UPDATE: Я улучшил код и поместил его на GitHub
- (void)mailWebArchive:(WebArchive *)webArchive title:(NSString *)aTitle URL:(NSString *)aURL {
NSString *bundleID = @"com.apple.mail";
NSData* targetBundleID = [bundleID dataUsingEncoding:NSUTF8StringEncoding];
NSAppleEventDescriptor *targetDescriptor = nil;
NSAppleEventDescriptor *appleEvent = nil;
targetDescriptor = [NSAppleEventDescriptor descriptorWithDescriptorType:typeApplicationBundleID
data:targetBundleID];
appleEvent = [NSAppleEventDescriptor appleEventWithEventClass:'mail'
eventID:'mlpg'
targetDescriptor:targetDescriptor
returnID:kAutoGenerateReturnID
transactionID:kAnyTransactionID];
[appleEvent setParamDescriptor:[NSAppleEventDescriptor descriptorWithDescriptorType:'tdta'
data:[webArchive data]]
forKeyword:'----'];
[appleEvent setParamDescriptor:[NSAppleEventDescriptor descriptorWithString:aTitle]
forKeyword:'urln'];
[appleEvent setParamDescriptor:[NSAppleEventDescriptor descriptorWithString:aURL]
forKeyword:'url '];
NSAppleEventDescriptor *replyDescriptor = nil;
NSAppleEventDescriptor *errorDescriptor = nil;
AEDesc reply = { typeNull, NULL };
// Send the AppleEvent
OSStatus status = AESendMessage([appleEvent aeDesc],
&reply,
kAEWaitReply,
kAEDefaultTimeout);
if(status == noErr)
{
replyDescriptor = [[[NSAppleEventDescriptor alloc] initWithAEDescNoCopy:&reply] autorelease];
errorDescriptor = [replyDescriptor paramDescriptorForKeyword:keyErrorNumber];
if(errorDescriptor != nil)
status = [errorDescriptor int32Value];
if(status != noErr)
NSLog(@"%s error %d", _cmd, status);
}
}
Этот код не проверяет, работает ли Почта, так что он работает только тогда, когда Почта уже запущена.
Профессиональная сторона этого подхода в том, что он работает со всеми почтовыми клиентами, которые реализуют MailLinkSupported и MailPageSupported. Смотрите QA1722.
Недостатком является то, что вы не можете установить получателей как с почтой на
. Для этого Скриптовый мост кажется единственным решением. Смотрите этот измененный образец SBSendEmail.
Не существует стандартного способа сложных взаимодействий с произвольными почтовыми клиентами. Вам нужно будет заняться каждым приложением, которое вы хотите поддерживать, отдельно и посмотреть, есть ли у него способ установить формат электронной почты - скорее всего, через Applescript - а затем определить, какой является обработчик mailto по умолчанию, и запустить соответствующий код. Для некоторых почтовых клиентов это может быть невозможно (так же, как у некоторых клиентов нет поддерживаемого способа открыть новое электронное письмо с вложением).
Вы могли бы использовать substr () и str _ replace () довольно легко:
$str = '1.1.0.1';
$pos = strpos($str,'.');
if ($pos !== false) {
$str = substr($str,0,$pos+1) . str_replace('.','',substr($str,$pos+1));
}
echo $str;
-121--3279212- Дастин Бахрах разместил элегантное (но неполное) решение здесь
Ему нужен немного «яблочного» сценария, так что для каждого почтового приложения вам придется создать другой сценарий
Кроме того, необходимо найти пользовательское почтовое приложение по умолчанию, что можно сделать путем создания URL-адреса mailto:
, а затем с помощью LaunchServices LSGetStartForURL ():
вернуть клиент электронной почты по умолчанию.