0

我发现这个小脚本允许用户在他们的网站上嵌入一个简单的 javascript 代码来显示我网站上的 iframe。这完美地工作,但是我试图通过他们嵌入的代码传递 1 个变量,并最终将其设置为 php 变量。

我提前道歉我对javascript不太了解!对不起。

用户将嵌入的示例代码(小部件类型代码)

<script language="JavaScript" src="http://www.mysite.com/public/iframe.js" rel='{"id":"1"}'></script>

这是在我端生成 iframe 的代码

// Set path to the iframe file
var filePath = 'http://www.mysite.com/public/iframe.php';
// Setup the iframe target
var iframe='<iframe id="frame" name="widget" src ="#" width="100%" height="1"   
marginheight="0" marginwidth="0" frameborder="no" scrolling="no"></iframe>';
// Write the iframe to the page
document.write(iframe);

var myIframe = parent.document.getElementById("frame");
// Setup the width and height
myIframe.height = 350;
myIframe.width = 960;

myIframe.src = filePath;
// set the style of the iframe
myIframe.style.border = "1px solid #999";
myIframe.style.padding = "8px";

最终目标是 rel 属性 id = 1 并将其分配给 php 变量以供进一步使用。我环顾四周,似乎 json_decode 是答案,但似乎没有任何效果。

4

3 回答 3

0

在您的 JavaScript 中添加此代码以查找脚本标记本身:

var allScripts = document.getElementsByTagName('script'),
currentScript = allScripts[allScripts.length - 1 ];

然后,由您决定是使用rel属性值还是解码src属性。

顺便说一句,当脚本元素以异步方式添加时,这可能并不总是有效,在这种情况下,您必须检查是否src与您的文件名匹配或检查rel可能

于 2013-01-19T21:07:18.510 回答
0

我很确定 rel 属性不是 iframe 标签中使用的东西。这通常用于带有 rel="nofollow" 的标签中,这样搜索引擎就不会跟踪该链接。

我还没有尝试过,但也许您可以在嵌入代码中的问号后发送该参数。像这样:

<script language="JavaScript" src="http://www.mysite.com/public/iframe.js?id=1"></script>

然后您的 PHP 代码只是在 GET 请求中查找它。

<?php
echo $_REQUEST['id'];
?>

当然,这假设您的接收脚本是用 PHP 编写的。由于您显示 .js 扩展名,我不确定 PHP 代码是否正在执行?另外,我不是 100% 确定您可以在 javascript 嵌入中传递这样的参数。

于 2013-01-19T20:53:31.303 回答
0

不要将其id作为rel属性传递,直接将其添加到 url 中即可:

<script language="JavaScript" src="http://www.mysite.com/public/iframe.js?id=1"></script>

然后在你的 php.ini 中访问它。

$id = (array_key_exists('id', $_GET)) ? $_GET['id'] : null;

这是一个速记if,用于检查以确保 id 已添加到 url。它与以下内容相同:

if(array_key_exists('id', $_GET) {
    $id = $_GET['id'];
} else {
    $id = null;
}
于 2013-01-19T20:47:17.107 回答