4

是否可以使用 PHP Simple HTML DOM Parser 在 simple_html_dom 对象的头部添加一个新的脚本标记,该对象具有来自主页的完整 html?

我需要在该模板中添加一些节点,其中一个节点是带有 jquery 的脚本标记,另一个是带有一些我从数据库中提取的文本的 div。

我以前做过这样的事情:(使用 DOMDocument )

$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($remote);
$head = $dom->getElementsByTagName('head')->item(0);
$jquery = '$(document).ready(function(){ $("#feed_home").hide()});
  if (window.location.hash) {
    Destino = window.location.hash.replace(\'#!\', \'?\');

         window.location.href = window.location.href.split(\'#\')[0] + Destino;
}
';

$script = $dom->createElement('script', $jquery);
$script_type = $dom->createAttribute('type');

$script_type->value = 'application/javascript';
$script->appendChild($script_type);
$head->appendChild($script);
4

2 回答 2

11

PHP Simple HTML DOM 允许操作:

$html = str_get_html($rawhtml);
$inject  = '<script type="text/javascript">alert("Hello")</script>';
$html->find('head', 0)->innertext = $inject.$html->find('head', 0)->innertext;
echo $html;

http://simplehtmldom.sourceforge.net/manual.htm#frag_access_tips

于 2013-08-12T12:33:09.217 回答
1

不,简单的 html dom 不会进行 dom 操作。使用 phpquery 虽然你可以这样做:

$doc->find('head')->append('<script src="foo"></script>');
于 2013-03-29T06:31:44.147 回答