Javascript 无法处理从其他来源提取的内容

标签 javascript php jquery html css

我很确定这是一个愚蠢的问题,但我进行了搜索,但找不到类似/相同的场景。

因此,我有一个主要的 PHP 页面,其中我在 HTML 的 head 部分包含了几个 Javascript 文件。然后在某个时候,我通过 file_get_contents 从外部源获取内容(HTML + Javascript)并将其输出到主页。

这个新的输出会正常地从主页上获取 CSS 样式,但是任何依赖于在主页上加载的样式的 Javascript 代码将不起作用。即使我将所需的 Javascript 放在主页的 document.ready 中,它仍然无法工作。

只是为了举例说明代码:

<html>
<head>
<link href="style.css" rel="stylesheet">
<script src="somejslib.js"></script>
</head>
<body>
Some HTML here generated by PHP
<?php
$content = file_get_contents('http://whatever/page');
echo $content;
?>
</body>

在抓取的内容中我会有类似的东西:

<div>
<form>
<input type="text" id="bla">
</form>
</div>
<script>$('#bla').datepicker({ somecodehere });</script>

datepicker 已包含在主页面加载的库中,但无论我将此代码放在何处都无法正常工作。

有什么提示吗?

P.S:它起作用的唯一方法是,如果我再次包含新内容中的所有 Javascript 库,这当然不是解决方案。

最佳答案

确保在加载外部内容后附加监听器或使用 on() 事件处理程序 http://api.jquery.com/on/

附言我现在看到您的代码实际上缺少 document.ready,因此在执行之前没有等待文档加载。我不确定其中哪些适用于您的实际代码,因为您只发布了一个示例。例如,如果您通过 ajax 拉取内容,请应用第一个解决方案,否则只需将内容包装在准备好的文档中

关于Javascript 无法处理从其他来源提取的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35940057/

相关文章:

javascript - 样式动态表格,TD固定宽度

javascript - 使用 limitto 过滤 Angular 对象中的数字

javascript - Fuse.js:在类数组对象中进行模糊搜索

javascript - Node.js可以验证PHP用户的 session 吗?

php - RabbitMQ - 如何检查队列是否为空?

javascript - 点击时启用/禁用 JS 功能

javascript - 如何在 D3 强制布局中将鼠标悬停在节点上时显示文本

javascript - 在工具提示 Highcharts 中显示分组系列的数据

javascript - node.js 和 express 中的事件菜单项

php - 使用 JQuery .post() 发布数组