string.utf8
или string.utf16
должны делать то, что вы просите. См. Здесь для получения дополнительной информации: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html .
Проблема будет в том, что open вернет ссылку на окно только в том случае, если вы переходите куда-нибудь в пределах вашего текущего хоста. Вы переходите к about: blank, которого нет на вашем хосте.
Попробуйте добавить файл blank.htm на свой сайт и вместо этого откройте его. Я все еще не уверен, что document.write будет разрешено, что документ не будет открыт для записи, однако вы можете управлять DOM существующего пустого документа.
Он блокирует его, потому что это не якорь с target = "_ blank". Вы создаете всплывающее окно программно.
Просто сделайте это после примера кода, который вы предоставили.
if (!child1) {
alert('You have a popup blocker enabled. Please allow popups for www.yourSite.com');
}
Если установлен уровень фильтра Средний
, блокировщик всплывающих окон Internet Explorer не будет блокировать окна, открываемые JavaScript, если они были инициированы действием пользователя. Следующее работает нормально в IE 6, 7 и 8:
<script type="text/javascript">
function openWin() {
var width = 800;
var height = 600;
var left = Math.floor((screen.availWidth - width) / 2);
var top = Math.floor((screen.availHeight - height) / 2);
var windowFeatures = "width=" + width + ",height=" + height +
",menubar=yes,toolbar=yes,scrollbars=yes,resizable=yes," +
"left=" + left + ",top=" + top +
"screenX=" + left + ",screenY=" + top;
child1 = window.open("about:blank", "subWind", windowFeatures);
writeTo(child1);
}
function writeTo(w) {
w.document.write('Test');
}
</script>
<a href="#" onclick="openWin();return false;">Test</a>
Обратите внимание, что использование document.write
во вновь открытом окне не работает в некоторых веб-браузерах. Также обратите внимание, что это может вызвать срабатывание блокировщика всплывающих окон в других браузерах, даже если он работает, как показано в Internet Explorer.
Я видел, как вызов JavaScript из события onclick
может в некоторых случаях, вызвать срабатывание блокировщика всплывающих окон. Похоже, это как-то связано с тем, насколько далеко window.open ()
от события onclick. Слишком много уровней функций, вызывающих функции перед вызовом window.open ()
.
Я предлагаю вам создать фиктивную [форму] с target = "_ blank" вместо window.open ().
Надеюсь, это сработает.
С уважением.
PD: Я полагаю, что добавление вашего сайта в "доверенные сайты" не вариант, верно?
попробуйте код
var newWin = window.open(...);
if (newWin && newWin.top) {
// popup has opened
} else {
// popup has been blocked
}