我正在尝试将其嵌入R
htmlwidget
到现有网页中 - 已经应用了引导程序和样式的网页.例如,请考虑以下网页(请注意应放置窗口小部件的位置):
Document
This is a test.
A closing paragraph.
我可以datatable
像这样创建和保存小部件:
library(htmlwidgets)
library(datatable)
d1 <- datatable(mtcars, filter = "top")
saveWidget(d1, file = "widget_file.html")
生成的widget_file.html
(即使是这个适度的小部件)包含很多代码.有没有一种简单的方法可以将其嵌入到现有的网页/模板中?
我成功使用但我想知道是否有更好的方法?此外,有没有办法将片段/依赖项(例如
json
数据)分开,widget_file.html
以便将它们放在其他文件夹中?
注意:我创建了htmlwidget
标记,但我相信应该有一个同义htmlwidgets
标记.
该htmlwidget
-package提供了一种方法来单独保存为插件的作品如下:
library(dygraphs) d1 <- dygraph(nhtemp, main = "New Haven Temperatures") %>% dyRangeSelector(dateWindow = c("1920-01-01", "1960-01-01")) saveWidget(d1, file = "widget_file.html", selfcontained = FALSE)
这导致以下文件/目录:
widget_file.html widget_file_files /dygraphs-1.1.1 .. /dygraphs-binding-0.6 .. /htmlwidgets-0.5 .. /jquery-1.11.1 .. /moment-2.8.4 .. /moment-timezone-0.2.5 ..
而widget_file.html
内容如下:
...
所以你可以编辑你的html如下:
Document This is a test.
A closing paragraph.
这将使您在html文档中硬编码json数据(请参阅我的).如果要动态加载数据,可以使用例如
json_dat <- readLines("widget_file.html")[18] cat(sub("","",sub('
如果你想使用一个纯JS解决方案,可以查看http://api.jquery.com/jquery.getjson/和widget_file_files/htmlwidgets-0.5/htmlwidgets.js
-File当前如何绑定json数据...
PS:由于这个问题已经引起了很多关注,你也可以联系包开发人员并要求他进一步"自我控制""自包含"选项htmlwidgets:::saveWidget
:意思是单独保存json数据并将其包括在内jquery.getjson