如果我有一个执行代码的按钮
$('#main').load('welcome.html');
在welcome.html
中,我有一个执行代码的按钮
$('#main').load('otherpage.html');
无论该函数位于父文件的HTML代码上还是子文件的HTML代码上,Javascript都不会被执行。
如何从外部加载的HTML文件中获得Javascript函数?
编辑这里有一个更多的样本..。
首页:
<body>
<div id="main"></div>
</body>
<script>
document.onLoad(){
$('#main').load('welcome.html');
}
function show(file){
$('#main').load(file+'.html');
}
</script>
welcome.html
页面:
<a href="javascript:show(test)">Test</a>
...however当单击“测试”按钮时,test.html
不会加载到主div中。
编辑2
以下是当前的状况和问题所在--确切地说。
当单击“网格”按钮时,内容会发生变化,页脚也会发生变化。
但是,具有基于Javascript的URL的页脚会出现以下错误:
Uncaught SyntaxError: Unexpected token ILLEGAL
...when试图访问1i.html
页面。
发布于 2013-02-05 15:50:22
变量test
与字符串'test'
之间有一个区别:
<a href="javascript:show(test)">Test</a>
可能应该是:
<a href="javascript:void show('test')">Test</a>
发布于 2013-02-05 15:41:47
重要的是要理解,当通过AJAX将脚本加载到页面时,主页面已经通过了document.ready
。因此,您加载的任何代码都会立即触发。
如果您加载的代码在它引用的html之前,当它触发时,它将找不到该html。
将代码放在远程页面的html之后将解决此问题。
发布于 2013-02-05 15:47:08
也许你的晚辈是错的。当您通过load()或ajax()导入新标记时,必须从新文档初始化处理程序。最简单的方法是使用jQuery.on或jQuery.live()代替jQuery.click()。
$('MYBUTTON').live('click', function(){
$('#main').load('your_url.html')
})
或者使用回调函数(重新)初始化按钮事件。
一个更好的解决方案是:只需将target_url添加到按钮rel属性..。
<button rel="YOUR_URL.html">Open Page</button>
$('button[rel]').live('click', function(){
$('#main').load($(this).attr('rel'));
})
https://stackoverflow.com/questions/14718872
复制相似问题