Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用target=“_空白”;在同一个iframe中?_Php_Javascript_Iframe - Fatal编程技术网

Php 如何使用target=“_空白”;在同一个iframe中?

Php 如何使用target=“_空白”;在同一个iframe中?,php,javascript,iframe,Php,Javascript,Iframe,我想打开带有target=“\u blank”和同一iframe中的iframe的链接。 我尝试了下面的代码,但没有成功。欢迎使用Php解决方案 <script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script> <iframe src="http://www.htmlcodetutorial.com/linking/_A_

我想打开带有target=“\u blank”和同一iframe中的iframe的链接。 我尝试了下面的代码,但没有成功。欢迎使用Php解决方案

<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script>


<iframe src="http://www.htmlcodetutorial.com/linking/_A_TARGET_95y98y108y97y110y107y.html" height="100%" width="100%" ></iframe>

<script>
$('iframe a[target="_blank"]').live('click',function(e){
e.preventDefault(); //stops it opening in a new window
var url = $(this).attr('href');
$('iframe').load(url);
});

</script> 

$('iframe a[target=“_blank”]”)。实时('click',函数(e){
e、 preventDefault();//停止在新窗口中打开它
var url=$(this.attr('href');
$('iframe').load(url);
});

您是否尝试过简单地更改目标属性

$('iframe a[target="_blank"]').each(function () {
    $(this).attr('target', '_self');
});
而且,这是非常正确的。如果
iframe
的源代码是从其他域加载的,那么您将无法从JavaScript执行此操作

您仍然可以在服务器端执行此操作,但这取决于您使用的语言

就本机JavaScript解决方案而言:

function replaceWithSelf () {
    var iframes = document.getElementsByTagName('iframe');
    var i = 0;
    var j = 0;
    var anchors;
    for (i = 0; i < iframes.length; i += 1) {
        anchors = iframes[i].getElementsByTagName('a');
        for (j = 0; j < anchors.length; j += 1) {
            if (anchors[j].getAttribute('target') === '_blank') {
                anchors[j].setAttribute('target', '_self');
            }
        }
    }
}
函数replaceWithSelf(){
var iframes=document.getElementsByTagName('iframe');
var i=0;
var j=0;
var锚;
对于(i=0;i
我在测试了相关部分(如您的问题所述)。使用的测试代码为:

var anchors = document.getElementsByTagName('a');
for (var j = 0; j < anchors.length; j += 1) {
    if (anchors[j].getAttribute('target') === '_blank') {
        anchors[j].setAttribute('target', '_self');
    }
}
var-anchors=document.getElementsByTagName('a');
对于(var j=0;j<0.length;j+=1){
if(锚定[j].getAttribute('target')=='\u blank'){
锚[j].setAttribute('target','u self');
}
}
我在控制台(谷歌浏览器)上运行的。代码按预期工作

为了重新迭代,如果iframe的源是从不同的域加载的,那么您将无法从JavaScript执行此操作


换句话说,除非运行代码的域也是,否则您将无法在JavaScript中执行此操作。

事件不会从iframe冒泡到父文档中。如果iframe位于不同的域
,则无法访问
iframe
的任何元素。因此,在这种情况下,您的脚本将失败。$(“iframe”).contents().find(“a[target=_blank]”)。live(…)谢谢!例如,如何使用php实现服务器端?b) 当使用动态加载的内容时,是否可以将页面上的所有target=“\u blank”更改为target=“\u self”?不幸的是,我对php还不够精通,甚至无法开始回答这个问题。我在你的问题中添加了php标签,希望能吸引php专家。谢谢,但是“锚[j].target”似乎没有定义。改为使用
getAttribute
setAttribute
。仍然未经测试。让我们知道这是否有效。不,对不起,它仍然不能正常工作,请您测试它并显示您的测试代码,好吗?