目前我有一个Angular.js页面,允许搜索和显示结果.用户单击搜索结果,然后单击后退按钮.我希望再次显示搜索结果,但我无法确定如何触发搜索执行.这是详细信息:
如何在用户不必按"搜索按钮"的情况下再次执行搜索功能?如果它是jquery,那么我将在documentready函数中执行一个函数.我看不到Angular.js的等价物.
我的角度控制器中有一个函数,我希望这个函数可以在文档准备好的情况下运行但我注意到角度在创建dom时运行它.
function myController($scope)
{
$scope.init = function()
{
// I'd like to run this on document ready
}
$scope.init(); // doesn't work, loads my init before the page has completely loaded
}
Run Code Online (Sandbox Code Playgroud)
谁知道我怎么能这样做?
我想在加载页面时运行一个函数,但我不想在<body>标记中使用它.
如果我在其中初始化它,我有一个运行的脚本<body>,如下所示:
function codeAddress() {
// code
}
Run Code Online (Sandbox Code Playgroud)
<body onLoad="codeAddress()">
Run Code Online (Sandbox Code Playgroud)
但是我想在没有它的情况下运行它<body onload="codeAddress()">并且我已经尝试了很多东西,例如:
window.onload = codeAddress;
Run Code Online (Sandbox Code Playgroud)
但它没有用.
那么如何在加载页面时运行它?
传统上,要在页面加载后调用JavaScript函数,您onload需要向包含一些JavaScript(通常只调用函数)的主体添加一个属性:
<body onload="foo()">
Run Code Online (Sandbox Code Playgroud)
当页面加载完毕后,我想运行一些JavaScript代码,用来自服务器的数据动态填充页面的各个部分.我不能使用该onload属性,因为我正在使用JSP片段,它没有body可以添加属性的元素.
还有其他方法可以在加载时调用JavaScript函数吗?我宁愿不使用jQuery,因为我对它不是很熟悉.
假设我无法控制iframe中的内容,是否有任何方法可以通过父页面检测到src更改?某种上载可能吗?
我的最后一招是如果iframe src与以前相同,则进行1秒间隔测试,但是做这个hacky解决方案会很糟糕.
如果它有帮助我正在使用jQuery库.
我想在文档加载后调用函数,但文档可能已经或可能尚未完成加载.如果它加载了,那么我可以调用该函数.如果它没有加载,那么我可以附加一个事件监听器.我无法在onload已经触发后添加一个eventlistener,因为它不会被调用.那么如何检查文档是否已加载?我尝试了下面的代码,但它并不完全有用.有任何想法吗?
var body = document.getElementsByTagName('BODY')[0];
// CONDITION DOES NOT WORK
if (body && body.readyState == 'loaded') {
DoStuffFunction();
} else {
// CODE BELOW WORKS
if (window.addEventListener) {
window.addEventListener('load', DoStuffFunction, false);
} else {
window.attachEvent('onload', DoStuffFunction);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在页面加载时将默认焦点设置在输入框上(例如:google).我的页面非常简单,但我无法弄清楚如何做到这一点.
这是我到目前为止所得到的:
<html>
<head>
<title>Password Protected Page</title>
<script type="text/javascript">
function FocusOnInput()
{
document.getElementById("PasswordInput").focus();
}
</script>
<style type="text/css" media="screen">
body, html {height: 100%; padding: 0px; margin: 0px;}
#outer {width: 100%; height: 100%; overflow: visible; padding: 0px; margin: 0px;}
#middle {vertical-align: middle}
#centered {width: 280px; margin-left: auto; margin-right: auto; text-align:center;}
</style>
</head>
<body onload="FocusOnInput()">
<table id="outer" cellpadding="0" cellspacing="0">
<tr><td id="middle">
<div id="centered">
<form action="verify.php" method="post">
<input type="password" name="PasswordInput"/>
</form>
</div>
</td></tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
为什么这种方法不能正常工作呢?
<html>
<head>
<script type="text/javascript">
function FocusOnInput()
{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试按顺序加载一组脚本,但onload事件并没有为我开火.
var scripts = [
'//cdnjs.cloudflare.com/ajax/libs/less.js/1.3.3/less.min.js',
'//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.min.js',
MK.host+'/templates/templates.js'
];
function loadScripts(scripts){
var script = scripts.shift();
var el = document.createElement('script');
el.src = script;
el.onload = function(script){
console.log(script + ' loaded!');
if (scripts.length) {
loadScripts(scripts);
}
else {
console.log('run app');
MK.init();
}
};
$body.append(el);
}
loadScripts(scripts);
Run Code Online (Sandbox Code Playgroud)
我猜想当使用jQuery将元素附加到DOM时,el.onload等本机事件不会触发.如果我使用原生,document.body.appendChild(el)那么它会按预期激发.
我有一个帮助页面,help.php,我加载一个iframe里面main.php我怎样才能得到这个页面的高度,一旦它在iframe中加载?
我问这个是因为我无法将iframe的高度设置为100%或auto.这就是为什么我认为我需要使用javascript ..我正在使用jQuery
CSS:
body {
margin: 0;
padding: 0;
}
.container {
width: 900px;
height: 100%;
margin: 0 auto;
background: silver;
}
.help-div {
display: none;
width: 850px;
height: 100%;
position: absolute;
top: 100px;
background: orange;
}
#help-frame {
width: 100%;
height: auto;
margin:0;
padding:0;
}
Run Code Online (Sandbox Code Playgroud)
JS:
$(document).ready(function () {
$("a.open-help").click(function () {
$(".help-div").show();
return false;
})
})
Run Code Online (Sandbox Code Playgroud)
HTML:
<div class='container'>
<!-- -->
<div class='help-div'>
<p>This is a div with an iframe loading the help page</p>
<iframe id="help-frame" src="../help.php" …Run Code Online (Sandbox Code Playgroud) 为什么我会收到错误或Uncaught TypeError:无法设置null的属性'innerHTML'?我以为我理解innerHTML并且之前有过工作.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<script type ="text/javascript">
what();
function what(){
document.getElementById('hello').innerHTML = 'hi';
};
</script>
</head>
<body>
<div id="hello"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)