По соображениям безопасности вы можете получить только URL-адрес до тех пор, пока содержимое iframe и ссылка на javascript будут отправлены из того же домена. Пока это правда, что-то вроде этого будет работать:
document.getElementById("iframe_id").contentWindow.location.href
Если эти два домена несовместимы, вы столкнетесь с ограничениями на использование скриптов для ссылок на сайты.
См. также отвечает на аналогичный вопрос .
Существует обновление для .NET Framework 4, которое позволяет указывать атрибут типа
http://support.microsoft.com/kb/2468871 .
См. feature 3
путь вниз по странице
Функция 3
Новый синтаксис позволяет определить элемент управления TextBox, который совместим с HTML5. Например, следующий код определяет элемент управления TextBox, совместимый с HTML5:
<asp:TextBox runat="server" type="some-HTML5-type" />
вы можете попробовать добавить атрибуты вручную, например:
TextBox1.Attributes["type"] = "email";
TextBox1.Attributes["type"] = "url";
TextBox1.Attributes["type"] = "number";
Извините, я немного опоздал на вечеринку, хотя думаю, что другие могут извлечь выгоду из того, что я сделал. У меня есть страница HTML 5, хотя у нас все еще есть .NET 3.5. Мы хотели сохранить элемент .NET, хотя изменили тип на электронную почту. Я попробовал несколько методов (включая Милокс выше), но безрезультатно, но тот, который работал для меня, заключался в следующем: я добавил свойство JavaScript к самому элементу, встроенному (когда я помещал его в тег скрипта, он не выбирал по какой-то причине ...) Вот как будет выглядеть ваш тег, если вы используете мои изменения:
<asp:TextBox runat="server" type="email" onfocus="this.type='email'"/>
Eli
Независимо от того, доступен ли он в качестве серверного элемента управления, вы должны иметь возможность получить доступ к коллекции HttpRequest.Form
и получить значение. Независимо от того, что браузер делает с тегом, он должен отправить строку на сервер.
в вашем файле .aspx добавьте
<input type="text" required autofocus placeholder="Email Address"
class="txt-input txt-input-username" ID="myTextBox" runat="server"/>
в свой код. .Cs
myTextBox.Attributes["type"] = "email";
Это сработало для меня
Вам нужно создать свой собственный элемент управления и переопределить процедуры рендеринга. Не стесняйтесь использовать либо исходный код, либо библиотеки DLL