gpt4 book ai didi

javascript - 从javascript动态生成的DIV位置问题

转载 作者:行者123 更新时间:2023-11-28 02:48:59 24 4
gpt4 key购买 nike

这里我从 javascript 生成一个 div 并将其放置在文本框上。

我发现两个问题1)我的代码仅适用于 IE。2) div 中的文本未垂直居中定位。

这是我的代码。

<html xmlns="http://www.w3.org/1999/xhtml" >  
<head id="Head1" runat="server">
<title>Untitled Page</title>
<script type="text/javascript" language="javascript">
var modalWindow = null;

function drawDiv() {
var txt = document.getElementById('TextBox1');
var dime = new Dimension(txt);
modalWindow = document.createElement('div');
modalWindow.style.position = 'absolute';
modalWindow.setAttribute("align", "center");
modalWindow.setAttribute("vertical-align", "middle");
modalWindow.innerHTML = '<p>hello...</p>';
modalWindow.style.left = dime.x;
modalWindow.style.top = dime.y;
modalWindow.style.width = dime.w;
modalWindow.style.height = dime.h;
modalWindow.style.backgroundColor = '#C0C0C0';
document.body.appendChild(modalWindow);
return false;
}

function hider(whichDiv) {
document.getElementById(modalWindow).style.display = 'none';
}

function Dimension(element) {
this.x = -1;
this.y = -1;
this.w = 0;
this.h = 0;
if (element == document) {
this.x = element.body.scrollLeft;
this.y = element.body.scrollTop;
this.w = element.body.clientWidth;
this.h = element.body.clientHeight;
}
else if (element != null) {
var e = element;
var left = e.offsetLeft;
while ((e = e.offsetParent) != null) {
left += e.offsetLeft;
}
var e = element;
var top = e.offsetTop;
while ((e = e.offsetParent) != null) {
top += e.offsetTop;
}
this.x = left;
this.y = top;
this.w = element.offsetWidth;
this.h = element.offsetHeight;
}
}
</script>
</head>
<body>
<div>
<form id="form1" runat="server">

<asp:TextBox ID="TextBox1" runat="server" Height="180px" Style="left: 307px; position: relative;
top: 264px" TextMode="MultiLine" Width="432px"></asp:TextBox>
<asp:Button ID="Button1" runat="server"
Text="Button" OnClientClick=" return drawDiv()" />
</form>
</div>
</body>
</html> ​

基本上,我试图在多行文本框上放置一个div,以防止用户访问该多行文本框。我的代码在 IE 中工作正常,但在 Firefox 中无法正常工作。当我在 Firefox 中运行代码时,div 无法在文本框中正确定位。我认为我的 javascript 不是跨浏览器的。所以请纠正我的 JavaScript 以使其跨浏览器。

谢谢

最佳答案

Javascript

function disable(id) {
var txt = document.getElementById(id);
txt.disabled = true;
return false;
}

ASP

<asp:Button ID="Button1" runat="server" Text="Button"
OnClientClick="return disable('TextBox1')" />

注意:如果需要,您也可以隐藏文本框。

关于javascript - 从javascript动态生成的DIV位置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com