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

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コードが実行されているかどうかわかりませんか?また、JavaScriptの埋め込みでこのようなパラメーターを渡すことができるかどうかは100%わかりません。

于 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でアクセスします。

$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 に答える
0

JavaScript で、これを追加して script タグ自体を見つけます。

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

次に、rel属性値を使用するか、src属性をデコードするかはあなた次第です。

ところで、スクリプト要素が非同期的に追加された場合、これは常に機能するとは限りません。その場合src、ファイル名と一致するか、relおそらく

于 2013-01-19T21:07:18.510 に答える