【问题标题】:JavaScript <script>...</script> content used as an argument in Google Docs publish scripts [duplicate]在 Google Docs 中用作参数的 JavaScript <script>...</script> 内容发布脚本 [重复]
【发布时间】:2012-09-15 14:47:47
【问题描述】:

可能重复:
What does a script-Tag with src AND content mean?

如果我在 Google Docs 电子表格中发布图表,我会得到以下代码来访问该图像:

<script type="text/javascript"
src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js">
{"dataSourceUrl":"//docs.google.com/spreadsheet/tq?
key=...&transpose=0&headers=1&range=A1%3AC72&gid=0&pub=1","options":{"vAxes":...}}
</script>

显然,javascript 程序将 ... 中的文本作为参数。

然而,在 HTML 定义 (http://www.w3.org/TR/html4/interact/scripts.html) 中:“如果 src 具有 URI 值,用户代理必须忽略元素的内容并通过 URI 检索脚本。”

(已编辑:正如下面的评论中提到的,这已经被讨论并同意 Google 使用 DOM 来访问内容 - 这是不推荐的。)

但是问题:如何将参数转义为有效的 XHTML?谷歌似乎没有考虑到有人想在标签之间添加 CTYPE 定义。此代码不起作用:

<script type="text/javascript"
src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js">
<![CDATA[
{"dataSourceUrl":"//docs.google.com/spreadsheet/tq?
key=...&transpose=0&headers=1&range=A1%3AC72&gid=0&pub=1","options":{"vAxes":...}}
]]>
</script>

【问题讨论】:

  • 重新编辑:使用字符串操作删除 &lt;![CDATA[]]&gt; 部分。

标签: xhtml google-apps-script


【解决方案1】:

在脚本运行时,该脚本元素将是页面上的最后一个元素。所以外部文件可以很容易地调用这样的东西:

var s = document.getElementsByTagName('script'); s = s[s.length-1];
var input = JSON.parse(s.textContent);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2023-02-03
    • 1970-01-01
    相关资源
    最近更新 更多