我有几个按钮,用于在单击时隐藏或显示页面上的其他元素。
按钮具有以下格式:
<button type="button" id="BTN" onclick="takeAction()">
JavaScript的格式如下:
<script type="text/javascript">
function takeAction() {
document.getElementById("ELEMENT1_HDR").style.display = "";
document.getElementById("ELEMENT1_BODY").style.display = "";
document.getElementById("ELEMENT2").style.display = "none";
document.getElementById("ELEMENT3").style.display = "none";
}
</script>
在本地,这在使用严格的HTML和JavaScript以及其他功能在.aspx.cs文件中使用c#时效果很好。
但是,只要我发布它并通过IP地址访问它,单击按钮就没有效果。在执行Inspect Element并单击按钮时,我收到以下错误:
属性'takeAction'的值为null或undefined,而不是Function对象
在我的开发环境中它有效,但在我的模拟Prod环境中却没有,我做错了什么?
我已经尝试将<script>
标签内容放在<header>
以及<body>
标签下,以便在发布时没有变化。 Visual Studio在发布时会破坏它吗?
不知何故:当我从page1开始并单击“查看”按钮导航到特定记录时,发布的版本将记录视图页面加载到屏幕,但保留page1名称。在本地完成时,它实际上会更改页面地址 - 因此这可能是函数在本地工作但不在已发布环境中工作的原因
我选择了一个存在于page1和page2上的函数,名为noCanDoYet()
,它只调用alert函数并在屏幕上显示消息:“此功能尚未实现”。即使在两个页面上都定义了此函数,我也会遇到相同的错误。
alert("help")
工作。
以下导航到特定记录的方法是否会导致本地环境没有的Prod类型环境中出现问题?
protected void navigateView(object sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
setCurrentlySelectedRecord(lb.CommandArgument);
setViewEdit("View");
Server.Transfer("page2.aspx");
}
我认为这个问题与IE11有关。我刚刚安装了Chrome,一切都很棒。
IE11现在也适用于在我的<meta http-equiv="x-ua-compatible" content="IE=edge; charset=UTF-8"/>
之前在<head>
中添加<script>
。
谢谢@JhWebDevGuy