Скрытие адресной строки в всплывающем окне
-
27-09-2019 - |
Вопрос
Чистая приложение, в котором я использую несколько всплывающих окон, чтобы открыть некоторые страницы. Для этого я использую такой метод
private void OpenWindow(string Url, string height, string Width)
{
try
{
string strScript = "";
strScript += "<script language=\"javascript\">";
strScript += "eval(\"popUpWindow('" + Url + "',0,0," + Width + "," + height + ",directories=no)\");";
strScript += "</script>";
lblScript.Text = strScript;
}
catch (Exception ex)
{
LogError.Log(ex);
throw;
}
}
Функция JavaScript как это:
var popUpWin = 0;
function popUpWindow(URLStr, left, top, width, height, windowName) {
left = (screen.width / 2) - width / 2;
top = (screen.height / 2) - height / 2;
if (popUpWin) {
if (!popUpWin.closed)
popUpWin.close();
}
popUpWin = open(URLStr, windowName, 'toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbar=no,resizable=no,copyhistory=yes,width=' + width + ',height=' + height + ',left=' + left + ', top=' + top + ',screenX=' + left + ',screenY=' + top + '');
popUpWin.focus();
}
Сейчас его работает нормально, показывая адресную строку. Но мое требование заключается в том, что я должен скрыть адресную строку во всем всплывающем окне. Это возможно? Пожалуйста, помогите, предоставив одно решение. Спасибо в Дэвинс ..
Решение
В любом случае использовать System.Text.StringBuilder
вместо строки конкатенации.
var sb = new StringBuilder();
sb.Append("<script language=\"javascript\">");
sb.AppendFormat("eval(\"popUpWindow('{0}',0,0,{1},{2},directories=no)\");", url, width, height);
sb.Append("</script>");
lblScript.Text = sb.ToString();
Другие советы
Нет, это невозможно. IIRC функция безопасности была введена в IE 6.
Вот некоторые более ранние обсуждения:
Как я могу скрыть адресную строку в модальном диалоге?
Не могу скрыть полосу состояния при выполнении Windows.Open на IE8
Всплывающее окно, как скрыть URL-бар в IE8
Это зависит от браузера, с которым вы пытаетесь сделать это.
Старые браузеры позволят этому, но сейчас дни, больше раз, чем нет, браузер будет продолжать отображать адресную строку. Одной из причин этого является труднее, чтобы пользователь подумал, что вы показываете реальное приложение (вирусный сканер?!?) Вместо сайта.