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

时间:2016-03-11 12:15:31

标签: javascript php jquery html css

我很确定这是一个愚蠢的问题,但我搜索过,找不到相似/相同的情况。

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

这个新输出通常会从主页面中获取CSS样式,但任何依赖于主要加载的Javascript代码都无法正常工作。即使我在主页中的document.ready内放置了所需的Javascript,它仍然无效。

仅举例说明代码:

<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库,这当然不是解决方案。

2 个答案:

答案 0 :(得分:0)

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

P.S。我现在看到你的代码实际上缺少document.ready,因此在执行之前不等待文档加载。我不确定哪些适用于您的实际代码,因为您只发布了一个示例。如果您通过ajax提取内容,例如应用第一个解决方案,否则只需将文件包装好就可以了。

答案 1 :(得分:0)

解决。

显然这是我一直以来的错误。我多次加载Jquery(不同版本)。

似乎并非所有版本的jQuery都能解决这种情况。