首页 > 解决方案 > URLSearchParams 从 iframe 中返回空

问题描述

我的 iframe 是:

<iframe src="iframe.html?name=%1A%C3%A9%C2%AB%C2%A1%C2%A7O%C2%AE%C2%87nr%C3%9D" allowtransparency="allowtransparency" allowfullscreen="allowfullscreen" style="width: 100%; height: 100%; margin: 0; padding: 0; z-index: 9999; position: fixed; left: 0; top: 0; border: 0;"></iframe>

从内部iframe.html,我正在做:

    let urlParams = new URLSearchParams(document.location.search)
    console.log(urlParams)

但是,这总是返回URLSearchParams {}__proto__: URLSearchParams

空的。

我究竟做错了什么?

标签: javascripthtmliframe

解决方案


URLSearchParams不是一个普通的对象,所以你需要使用方法来获取参数,例如

console.log(urlParams.get('name'));

所有方法都是:

该接口不继承任何方法。

URLSearchParams.append()

附加指定的键/值对作为新的搜索参数。

URLSearchParams.delete()

从所有搜索参数列表中删除给定的搜索参数及其关联值。

URLSearchParams.entries()

返回一个迭代器,允许迭代此对象中包含的所有键/值对。

URLSearchParams.forEach()

允许通过回调函数遍历此对象中包含的所有值。

URLSearchParams.get()

返回与给定搜索参数关联的第一个值。

URLSearchParams.getAll()

返回与给定搜索参数关联的所有值。

URLSearchParams.has()

返回一个布尔值,指示是否存在这样的给定参数。

URLSearchParams.keys()

返回一个迭代器,允许迭代此对象中包含的键/值对的所有键。

URLSearchParams.set()

将与给定搜索参数关联的值设置为给定值。如果有多个值,则删除其他值。

URLSearchParams.sort()

按键对所有键/值对(如果有)进行排序。

URLSearchParams.toString()

返回包含适合在 URL 中使用的查询字符串的字符串。

URLSearchParams.values()

返回一个迭代器,允许迭代此对象中包含的键/值对的所有值。

MDN 参考


推荐阅读