如何通过更改src修复iframe元素

时间:2018-12-20 17:03:47

标签: javascript html

我正在尝试编写一小段代码,以访问我的几何课本的页面。最初,我使代码重定向到您,但是由于您必须做的所有事情,所以导航起来很难。相反,我决定使用<iframe>元素,以便更轻松地在页面之间进行更改。由于某种原因,每当我按下“提交”按钮时,页面就会重新加载,并且对iframe元素没有任何作用。我想知道如何解决此问题。

<head>
<style>
body {
Background-image: linear-gradient(to bottom right, lightgreen, 
dodgerblue);
}

</style>

<body>
<style>
.button {
background-color: lightblue;
border: 2px solid lightblue;
border-radius: 5px;
font-family: verdana;
font-size: 3em;
margin: auto;
width: 100%;
}

input[type=text] {
border: 2px solid lightblue;
border-radius: 5px;
font-family: verdana;
font-size: 3em;
text-align: center;
margin: auto;
width: 100%;
background-color: hsla(210, 100.0, 55.9, 0.0);
}

.inputstuff {
width: 40%;
margin: auto;
}

</style>
<div class="inputstuff">

<form>
<input type="text" id="pg" placeholder="page no.(with zeros)" />

<button onclick="myFunction()"> Submit</button>
</form>

</div>

<iframe id="pdf" src="about:blank"></iframe>
<script>
function myFunction() {
var gaybo = document.getElementById("pg").value;
var n = gaybo.length
if (n == 1) {
document.getElementById("pdf").src = 
"https://my.hrw.com/math11/math06_07/student/pdf/english/geo/geo_11_0" + 
gaybo + ".pdf";
}
if (n == 2) {
document.getElementById("pdf").src = 
"https://my.hrw.com/math11/math06_07/student/pdf/english/geo/geo_11_0" + 
gaybo + ".pdf";
}
if (n == 3) {
document.getElementById("pdf").src = 
"https://my.hrw.com/math11/math06_07/student/pdf/english/geo/geo_11_0" + 
gaybo + ".pdf";
}
}

</script>
</body>
</head>

</html>

5 个答案:

答案 0 :(得分:0)

这应该起作用,只需添加以下几处更改

find -print0

并在函数中传递事件并调用preventDefault以防止重新加载页面

<button onclick="myFunction(event)"> Submit</button>

答案 1 :(得分:0)

您需要为按钮指定类型。

尝试将type =“ button”放在按钮上,如下所示:

<button type="button" onclick="myFunction()"> Submit</button>

答案 2 :(得分:0)

您可以在type="button"中添加一个button,否则您的按钮将获得默认类型,具体取决于浏览器,并且可能是type="submit",它将重新加载您的页面:

<button type="button" onclick="myFunction()"> Submit</button>

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Attributes

类型

按钮的类型。可能的值为:

  • submit:该按钮将表单数据提交到服务器。 如果未指定属性,或者属性被动态更改为空值或无效值,则为默认设置。
  • reset:该按钮将所有控件重置为其初始值。
  • button:该按钮没有默认行为。它可以具有与元素的事件关联的客户端脚本,这些脚本在事件发生时触发。

<html>
<head>
<style>
body {
Background-image: linear-gradient(to bottom right, lightgreen, 
dodgerblue);
}

</style>

<body>
<style>
.button {
background-color: lightblue;
border: 2px solid lightblue;
border-radius: 5px;
font-family: verdana;
font-size: 3em;
margin: auto;
width: 100%;
}

input[type=text] {
border: 2px solid lightblue;
border-radius: 5px;
font-family: verdana;
font-size: 3em;
text-align: center;
margin: auto;
width: 100%;
background-color: hsla(210, 100.0, 55.9, 0.0);
}

.inputstuff {
width: 40%;
margin: auto;
}

</style>
<div class="inputstuff">

<form>
<input type="text" id="pg" placeholder="page no.(with zeros)" />

<button type="button" onclick="myFunction()"> Submit</button>
</form>

</div>

<iframe id="pdf" src="about:blank"></iframe>
<script>
function myFunction() {
var gaybo = document.getElementById("pg").value;
var n = gaybo.length
if (n == 1) {
document.getElementById("pdf").src = 
"https://my.hrw.com/math11/math06_07/student/pdf/english/geo/geo_11_0" + 
gaybo + ".pdf";
}
if (n == 2) {
document.getElementById("pdf").src = 
"https://my.hrw.com/math11/math06_07/student/pdf/english/geo/geo_11_0" + 
gaybo + ".pdf";
}
if (n == 3) {
document.getElementById("pdf").src = 
"https://my.hrw.com/math11/math06_07/student/pdf/english/geo/geo_11_0" + 
gaybo + ".pdf";
}
}

</script>
</body>
</head>
</html>

答案 3 :(得分:0)

进行快速测试,如果您在按钮中包含type属性,它似乎可以解决问题:

<button type="button" onclick="myFunction()"> Submit</button>

添加了一条错误消息,使我无法进入pdf框(因为我没有访问该pdf的权限),但这可能会解决您的问题。

答案 4 :(得分:0)

您唯一要做的就是 将按钮类型设置为button。 无需设置,按钮会将其视为提交。

<Button type="button">submit</>