首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从外部HTML执行Javascript

如何从外部HTML执行Javascript
EN

Stack Overflow用户
提问于 2013-02-05 23:24:41
回答 3查看 130关注 0票数 0

如果我有一个执行代码的按钮

$('#main').load('welcome.html');

welcome.html中,我有一个执行代码的按钮

$('#main').load('otherpage.html');

无论该函数位于父文件的HTML代码上还是子文件的HTML代码上,Javascript都不会被执行。

如何从外部加载的HTML文件中获得Javascript函数?

编辑这里有一个更多的样本..。

首页:

代码语言:javascript
运行
复制
<body>
    <div id="main"></div>
</body>

<script>
    document.onLoad(){
        $('#main').load('welcome.html');
    }

    function show(file){
        $('#main').load(file+'.html');
    }
</script>

welcome.html页面:

代码语言:javascript
运行
复制
<a href="javascript:show(test)">Test</a>

...however当单击“测试”按钮时,test.html不会加载到主div中。

编辑2

以下是当前的状况和问题所在--确切地说。

我已经把代码的骨头上传到PasteBin了

当单击“网格”按钮时,内容会发生变化,页脚也会发生变化。

但是,具有基于Javascript的URL的页脚会出现以下错误:

Uncaught SyntaxError: Unexpected token ILLEGAL

...when试图访问1i.html页面。

EN

回答 3

Stack Overflow用户

发布于 2013-02-05 23:50:22

变量test与字符串'test'之间有一个区别:

代码语言:javascript
运行
复制
<a href="javascript:show(test)">Test</a>

可能应该是:

代码语言:javascript
运行
复制
<a href="javascript:void show('test')">Test</a>
票数 1
EN

Stack Overflow用户

发布于 2013-02-05 23:41:47

重要的是要理解,当通过AJAX将脚本加载到页面时,主页面已经通过了document.ready。因此,您加载的任何代码都会立即触发。

如果您加载的代码在它引用的html之前,当它触发时,它将找不到该html。

将代码放在远程页面的html之后将解决此问题。

票数 0
EN

Stack Overflow用户

发布于 2013-02-05 23:47:08

检查jQuery.live()jQuery.on()

也许你的晚辈是错的。当您通过load()或ajax()导入新标记时,必须从新文档初始化处理程序。最简单的方法是使用jQuery.on或jQuery.live()代替jQuery.click()。

代码语言:javascript
运行
复制
$('MYBUTTON').live('click', function(){
    $('#main').load('your_url.html')
})

或者使用回调函数(重新)初始化按钮事件。

一个更好的解决方案是:只需将target_url添加到按钮rel属性..。

代码语言:javascript
运行
复制
<button rel="YOUR_URL.html">Open Page</button>

$('button[rel]').live('click', function(){
    $('#main').load($(this).attr('rel'));
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14718872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档